AGB  ·  Datenschutz  ·  Impressum  







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

Prozess unter WinNT killen.

Ein Thema von freakfly · begonnen am 11. Okt 2005 · letzter Beitrag vom 12. Okt 2005
Antwort Antwort
freakfly
(Gast)

n/a Beiträge
 
#1

Prozess unter WinNT killen.

  Alt 11. Okt 2005, 10:52
Hallo!

Ich möchte mit meinem Delphi Programm einen Prozess unter Windows NT killen.
Eigentlich müsste das ja mit TerminateProcess gehen, oder?
Ich habe jedenfalls folgendes probiert:
 hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, FALSE, PID); Und den Handle des Prozesses zu bekommen. Danach müsste ich es ja eigentlich mit demselben schließen können:
res := terminateprocess(hProcess, 0); Das Funktioniert aber leider nicht. Kann mir jemand weiterhelfen? Das Programm muss unter WinNT lauffähig sein, daher bringen mir Tipps zu WinXP wenig (mal ganz abgesehen davon, das es da auch jede Menge im Netz gibt ).

Gruß, freak
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Prozess unter WinNT killen.

  Alt 11. Okt 2005, 11:10
ähm wie wärs mit der DP suche ?
da gibts echt viele beispiele wie das geht
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
freakfly
(Gast)

n/a Beiträge
 
#3

Re: Prozess unter WinNT killen.

  Alt 11. Okt 2005, 11:15
Wie ich auch schon oben geschrieben habe gibt es massig Beispiele wie es unter Windows XP/2k/ME funktioniert. Aber allem Anschein nach funktionieren diese nicht unter Windows NT. Jedoch lasse ich mich gerne eines Besseren belehren.
  Mit Zitat antworten Zitat
Benutzerbild von LoRd-MuldeR
LoRd-MuldeR

Registriert seit: 9. Okt 2005
Ort: Somewhere over the Slaughterhouse
132 Beiträge
 
Delphi 7 Professional
 
#4

Re: Prozess unter WinNT killen.

  Alt 11. Okt 2005, 13:00
Zitat von freakfly:
Delphi-Quellcode:
 hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, FALSE, PID);
res := terminateprocess(hProcess, 0);
Hi,

Du hast vergessen dir das PROCESS_TERMINATE Recht für deinen Handle zu holen.
Eventuell brauchst du PROCESS_QUERY_INFORMATION und PROCESS_VM_READ sogar gar nich mal...

Versuchs mal damit:

Delphi-Quellcode:
 hProcess := OpenProcess(PPROCESS_TERMINATE or ROCESS_QUERY_INFORMATION or PROCESS_VM_READ, FALSE, PID);
res := terminateprocess(hProcess, 0);
Gruß MuldeR
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#5

Re: Prozess unter WinNT killen.

  Alt 11. Okt 2005, 13:05
Unter bestimmten Umständen braucht man mglw. noch das Debugrecht. Normalerweise aber nur von einem unterprivilegierten Account aus
  Mit Zitat antworten Zitat
freakfly
(Gast)

n/a Beiträge
 
#6

Re: Prozess unter WinNT killen.

  Alt 12. Okt 2005, 08:19
Danke für eure Antworten!

Zitat:
Du hast vergessen dir das PROCESS_TERMINATE Recht für deinen Handle zu holen.
Eventuell brauchst du PROCESS_QUERY_INFORMATION und PROCESS_VM_READ sogar gar nich mal...
Am nichtvorhandenen PROCESS_TERMINATE lags! Irgendwie hatte ich mir die Beschreibung vom MSDN zu TerminateProcess durchgelesen und rausgedruckt und da steht auch drin
"The handle must have the PROCESS_TERMINATE access right."
Aber vor lauter Bäumen sieht man manchmal den Wald nichtmehr !
Deshalb vielen Dank!

Gruß, Benny

@Olli: Unterprivilegiert ist der Account zum Glück nicht... (Ein Problem weniger )
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:32 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