Hallo. habe eine Funktion hier in forum gefunden "function KillProcess(dwProcID, Wait: DWORD): Integer;" die einen Process beendet. das funktioniert auch, aber wenn ich ein Process beende, der sich aber dieser Prozess in Systemtray befindet (rechts neben die Uhr) bleibt dieser immer noch zu sehen, wenn ich diesen Process beendet habe. Wie kann ich das lösen?
Delphi-Quellcode:
function KillProcess(dwProcID, Wait: DWORD): Integer;
var
hProcess: Cardinal;
dw: DWORD;
begin
// open the process and store the process-handle
hProcess := OpenProcess(SYNCHRONIZE
or PROCESS_TERMINATE, False, dwProcID);
// kill it
if hProcess <> 0
then
begin
dw := Integer(TerminateProcess(hProcess, 1));
if dw <> 0
then
begin
// TerminateProcess returns immediately, so wie have to verify the result via
// WaitForSingleObject
dw := WaitForSingleObject(hProcess, Wait);
if dw = WAIT_FAILED
then
dw := GetLastError;
end
else // TerminateProcess = 0
dw := GetLastError;
CloseHandle(hProcess);
end
else // hProcess = INVALID_HANDLE_VALUE
dw := GetLastError;
result := dw;
end;
Ich beendet Taskmanager, aber der Symbol ist immer noch zusehen, Sie bild.