AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Windows Prozess killen

Ein Thema von Budda · begonnen am 3. Sep 2003 · letzter Beitrag vom 4. Sep 2003
Antwort Antwort
Seite 1 von 2  1 2      
Budda

Registriert seit: 3. Sep 2003
96 Beiträge
 
Delphi 7 Professional
 
#1

Windows Prozess killen

  Alt 3. Sep 2003, 14:17
Hallo,

habe mit Hilfe des Codes aus diesem Thread eine Liste aller laufenden Prozesse bzw. die Dateinamen like test.exe.

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
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Windows Prozess killen

  Alt 3. Sep 2003, 14:23
Um einen Prozess zu killen, brauchst die ProzessID und die Funktion KillProcess.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Budda

Registriert seit: 3. Sep 2003
96 Beiträge
 
Delphi 7 Professional
 
#3

Re: Windows Prozess killen

  Alt 3. Sep 2003, 14:40
Hallo,

gibt es denn eine möglichkeit Anhand der test.exe die nzugehörige PID zu bekommen ?

Gruß
Budda
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Windows Prozess killen

  Alt 3. Sep 2003, 15:03
Zeig mal bitte den Code, wie du an alle Prozesse rankommst. Ich hab keine große Lust, mich durch 3 Seiten Threads durchzuwühlen.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Windows Prozess killen

  Alt 3. Sep 2003, 15:06
Zitat von Chewie:
Um einen Prozess zu killen, brauchst die ProzessID und die Funktion KillProcess.
Funktionn KillProcesses? Wo kommt die denn her?

@Budda: http://www.delphipraxis.net/internal...ect.php?t=2275
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Windows Prozess killen

  Alt 3. Sep 2003, 15:12
Zitat von Luckie:
Zitat von Chewie:
Um einen Prozess zu killen, brauchst die ProzessID und die Funktion KillProcess.
Funktionn KillProcesses? Wo kommt die denn her?
Mist, ich hab gerade an Linux gedacht (kill PID).

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;

Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Budda

Registriert seit: 3. Sep 2003
96 Beiträge
 
Delphi 7 Professional
 
#7

Re: Windows Prozess killen

  Alt 3. Sep 2003, 16:39
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:
  A := Listbox1.Count;
  for I:=0 to A do
    if Listbox1.Items.Strings[I] = 'test.exethen
      KillProcess(GetProcessID(Listbox1.Items.Strings[Listbox1.ItemIndex]))
    else
end;
Allerdings hab ich das Problem das bevor er zum killen des Prozesses kommt er die Message Item Index Out auf Bounds.

Weiss jemand wo da der Fehler is ?

Gruß
Budda
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Windows Prozess killen

  Alt 3. Sep 2003, 16:44
Muss es nicht so heißen:

Delphi-Quellcode:
A := Listbox1.Count;
  for I:=0 to A do
    if Listbox1.Items.Strings[I] = 'test.exethen
      KillProcess(GetProcessID(Listbox1.Items.Strings[I]))
    else
end;
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Windows Prozess killen

  Alt 3. Sep 2003, 16:50
Du musst aber aufpassen:

Lösche dann das:
Delphi-Quellcode:
{ and refresh listbox contend }
Form1.Button1Click(Form1);
aus der "Kill-Prozess" und setzt es in diese beiden proceduren wieder ein:

Delphi-Quellcode:
//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.exethen
    KillProcess(GetProcessID(Listbox1.Items.Strings[i]));

  { and refresh listbox contend }
  Button1Click(Form1);
end;
Sonst kommt die Fehlermeldung: ListenIndex überschreitet das Mximum. Oder so ähnlich.
  Mit Zitat antworten Zitat
Budda

Registriert seit: 3. Sep 2003
96 Beiträge
 
Delphi 7 Professional
 
#10

Re: Windows Prozess killen

  Alt 4. Sep 2003, 08:24
Zitat von Matze:
Muss es nicht so heißen:

Delphi-Quellcode:
A := Listbox1.Count;
  for I:=0 to A do
    if Listbox1.Items.Strings[I] = 'test.exethen
      KillProcess(GetProcessID(Listbox1.Items.Strings[I]))
    else
end;
Ah jau, das hatte ich übersehen, allerdings habe ich das Problem das er den prozess zwar automatisch beendet allerdings kommt nach dem beenden der Fehler "List Index out of Bounds".

Wer ne Idee was das ist ?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz