Einzelnen Beitrag anzeigen

ASM

Registriert seit: 16. Aug 2004
165 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: SCP-Komponente gesucht

  Alt 22. Feb 2012, 22:43
Würden denn da nicht die Virenscanner anschlagen?
Bei mir nicht. Ich verwende GDATA Internet Security 2012.

Verwendet habe ich den Code übrigens unter WinXP; ob auch alles unter Win7 ebenso glatt läuft, kann ich gerade nicht überprüfen.

Und hier noch eine leicht verbesserte Funktion Killprocess(), die den Fall berücksichtigt, dass die vom Programm gestartete ExeResource bereits extern beendet worden sein sollte. Das kann durch Abfrage des Exitcodes per GetExitCodeProcess() geklärt werden:

Delphi-Quellcode:
function KillProcess(ProcInfo: TProcessInformation): boolean;
var
  process_handle: integer;
  errorCode: cardinal;
begin
  process_handle := openprocess(PROCESS_ALL_ACCESS, true, ProcInfo.dwProcessId);
  result := terminateprocess(process_handle, 0);
  if not result then
  begin
    // prüfen, was los ist
    GetExitCodeProcess(process_handle, Errorcode);
    // falls der Process bereits extern beendet worden ist,
    // dann ist ErrorCode = 0, ansonsten ErrorCode <> 0
    result := ErrorCode = 0;
  end;
  if result then
  begin
    CloseHandle(ProcInfo.hProcess);
    CloseHandle(ProcInfo.hThread);
  end;
end;
  Mit Zitat antworten Zitat