Entwickler-Ecke

Windows API - Prozess starten/prüfen


robo202 - Fr 27.06.08 16:51
Titel: Prozess starten/prüfen
Wie satre ich einen neuen Prozess?
Wie prüfe ich ob ein prozess noch läuft?


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Fr 27.06.2008 um 16:54


GericasS - Fr 27.06.08 17:03

http://www.delphitricks.com/source-code/windows/check_if_a_process_is_running.html

LG

GericasS


Hidden - Fr 27.06.08 17:21

Hi,

Das sieht für mich spontan so aus, als wenn es viele Recourcen frisst.. Wenn du dir allerdings das dazugehörige Problem [http://www.delphi-forum.de/viewtopic.php?t=84531](auf das man normalerweise verlinkt ;) ) ansiehst, dürfte diese Methode ständig aufgerufen werden(so, dass ein User keine Gelegenheit hat, beide Prozesse gleich nacheinander zu beenden).

Ich glaube ja immernoch, dass es um eine Art Systemdienst geht, aber das gehört hier nicht hin und der andere Thread ist ja praktischerweise geschlossen.. @Robo202: Wenn da noch was sein sollte, gibt es die Möglichkeit, den Thread wieder öffnen zu lassen(bzw., dies zu beantragen).

mfG,


Dezipaitor - So 29.06.08 13:23

So wie ich das verstehe, willst du zwei Prozesse sich gegenseitig überwachen lassen.
Da würde ich empfehlen mit Jobs zu arbeiten. Wenn Prozesse in einem Job sind, kann man einige Einschränkungen (Resourcen) geben oder auch auf deren Ende benachrichtigt werden. Sobald man eine solche Benachrichtigung bekommt, kann man den Prozess ja neustarten.
Allerdings funkz das nicht für normale Anwendungen, die im Benutzerkontext laufen. Man könnte ja z.B. eine Anwendung anhalten und dann die anderen beenden.
D.h. es sollte zumindest ein Dienst sein, der die Anwendung überwacht.
Sobald der Anwender jedoch Adminrechte hat, ist das Spiel auch schon vorbei. Man kann eine Anwendung nicht sicher vor dem Beenden machen, solange der Benutzer Adminrechte besitzt. Da gibt es kein wenn oder aber!