![]() |
Windows Prozess killen
Hallo,
habe mit Hilfe des Codes aus diesem ![]() Wie kann ich nun bestimmte Prozesse killen ? Also ich möchte z.B. alle Prozesse der test.exe killen ? Und dann hab ich noch ne NebenFrage, welches Buch könntet ihr mir für den Delphi Einstieg empfehlen ? Gruß Budda |
Re: Windows Prozess killen
Um einen Prozess zu killen, brauchst die ProzessID und die Funktion KillProcess.
|
Re: Windows Prozess killen
Hallo,
gibt es denn eine möglichkeit Anhand der test.exe die nzugehörige PID zu bekommen ? Gruß Budda |
Re: Windows Prozess killen
Zeig mal bitte den Code, wie du an alle Prozesse rankommst. Ich hab keine große Lust, mich durch 3 Seiten Threads durchzuwühlen.
|
Re: Windows Prozess killen
Zitat:
@Budda: ![]() |
Re: Windows Prozess killen
Zitat:
Edit: OK, hier ist sie:
Delphi-Quellcode:
function KillProcess(PID: DWord): Bool;
var hProcess: THandle; begin hProcess := OpenProcess(PROCESS_TERMINATE, False, PID); Result := TerminateProcess(hProcess, 0); end; :mrgreen: |
Re: Windows Prozess killen
Hallo,
hab mal Luckie's Code genommen der auch so seinen Zweck erfüllt. Danke nochmal. Allerdings habe ich jetzt probiert das zu automatisieren, dazu habe ich testweise folgende funktion auf einen Button gelegt:
Delphi-Quellcode:
Allerdings hab ich das Problem das bevor er zum killen des Prozesses kommt er die Message Item Index Out auf Bounds.
A := Listbox1.Count;
for I:=0 to A do if Listbox1.Items.Strings[I] = 'test.exe' then KillProcess(GetProcessID(Listbox1.Items.Strings[Listbox1.ItemIndex])) else end; Weiss jemand wo da der Fehler is ? Gruß Budda |
Re: Windows Prozess killen
Muss es nicht so heißen:
Delphi-Quellcode:
A := Listbox1.Count;
for I:=0 to A do if Listbox1.Items.Strings[I] = 'test.exe' then KillProcess(GetProcessID(Listbox1.Items.Strings[I])) else end; |
Re: Windows Prozess killen
Du musst aber aufpassen:
Lösche dann das:
Delphi-Quellcode:
aus der "Kill-Prozess" und setzt es in diese beiden proceduren wieder ein:
{ and refresh listbox contend }
Form1.Button1Click(Form1);
Delphi-Quellcode:
Sonst kommt die Fehlermeldung: ListenIndex überschreitet das Mximum. Oder so ähnlich. ;)
//Kill den ausgewählten Prozess
procedure TForm1.Button2Click(Sender: TObject); begin KillProcess(GetProcessID(Listbox1.Items.Strings[Listbox1.ItemIndex])); { and refresh listbox contend } Form1.Button1Click(Form1); end; //Killt alle test.exe procedure TForm1.Button3Click(Sender: TObject); var i: integer; begin for I:=0 to ListBox1.Count-1 do if Listbox1.Items.Strings[i] = 'test.exe' then KillProcess(GetProcessID(Listbox1.Items.Strings[i])); { and refresh listbox contend } Button1Click(Form1); end; |
Re: Windows Prozess killen
Zitat:
Wer ne Idee was das ist ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz