Prozesse durchlaufen und beenden
-
Ich möchte nachdem alle Prozesse durchlaufen wurden
aus der while-Schleife raus.
Aber warum geht das mit "photo != NULL" nicht ?[cpp]HANDLE proc;
int i = 0;
PROCESSENTRY32 process;
void* photo = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);Process32First(photo,&process);
while(photo != NULL) // warum nicht bei NULL ?
{
Process32Next(photo,&process);
proc = OpenProcess(PROCESS_ALL_ACCESS,false,process.th32ProcessID);
i++;
if(!strcmp(process.szExeFile,item))
{
TerminateProcess(proc,0);
break;
}
}
[/cpp]
-
Hallo,
Aero schrieb:
Aber warum geht das mit "photo != NULL" nicht ?
Weil keiner gesagt hat, daß photo NULL werden kann. Nach MSDN-Dokumentation ist photo ein "in(put)"-Parameter und wird deswegen garantiert nicht von der Funktion Process32Next geändert!
Auch sonst gäbe es noch einiges zu kritisieren (z.B. void* photo, photo ist ein HANDLE), deswegen besser das Beispiel hier
genau studieren und anpassen.
MfG