Thema: Delphi Prozess Beenden

Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#18

Re: Prozess Beenden

  Alt 15. Aug 2005, 05:01
@Luckie AND Olli, darf ich Eure Zweisamkeit unterberchen ?

@MiniKeks

In Bezug auf http://www.swissdelphicenter.ch/de/showcode.php?id=593 brauchst Du doch nur die beiden Methoden zusammenführen (Siehe Beispiel).
Im Beispiel sollte man noch auf die Gross- und Kleinschreibung eingehen.

Delphi-Quellcode:
function TerminateTheProcess(const ExeFilename: String): Boolean;
var
  ...
begin
  aSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  aProcessEntry32.dwSize := SizeOf(aProcessEntry32);
  bContinue := Process32First(aSnapshotHandle, aProcessEntry32);
  while Integer(bContinue) <> 0 do // Suche solang bContinue true
  begin
    if ExtractFileName(aProcessEntry32.szExeFile) = ExeFilename then
    begin
      if MessageDlg('Do you want to Terminate...' ... then
      begin
        PrID := aProcessEntry32.th32ProcessID;
        Ph := OpenProcess(1, BOOL(0), PrID);
        Ret := TerminateProcess(Ph, 0);
        if Integer(Ret) = 0 then
        begin
          MessageDlg('Cannot terminate...', mtInformation, [mbOK], 0);
          Result := False;
        end else
        begin
          bContinue := False;
          Result := True;
         
          { könnte man auch so machen ist aber nicht "sauber"
          CloseHandle(aSnapshotHandle);
          Result := True;
          exit;
          }

       end;
      end;
    end;
    bContinue := Process32Next(aSnapshotHandle, aProcessEntry32); // weitersuchen
  end;
  CloseHandle(aSnapshotHandle);
end;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat