Einzelnen Beitrag anzeigen

Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#1

Taskbeenden und die Startleiste. (Symbol wird angezeigt)

  Alt 2. Jul 2006, 13:54
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.
Angehängte Grafiken
Dateityp: bmp 001_105.bmp (31,6 KB, 24x aufgerufen)
  Mit Zitat antworten Zitat