Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Prüfen ob Programm läuft (https://www.delphipraxis.net/70016-pruefen-ob-programm-laeuft.html)

faux 23. Mai 2006 16:23


Prüfen ob Programm läuft
 
Hallo!
Ich bin mir zu 100% sicher, dass diese Frage bereits desöfteren im Internet beantwortet wurde, aber ich werde leider nicht fündig.
Wie kann ich überprüfen, ob ein betsimmtes Programm läuft? Ich will nicht Prüfen, ob ein bestimmtes Fenster offen ist, sondern ich will prüfen, ob das Programm läuft. Auch wenn das Programm in den SysTray minimiert ist (also kein Fenster angezeigt wird), soll das erkannt werden. Problematik:
Ein Freund (soll heißen ich kann nichts weiteres über dieses Programm sagen) braucht ein Programm, welches ein Programm, wenn es beendet wurde, sofort wieder startet, da es sich um ein Programm handelt, welches bestimmte Scannvorgänge übernimmt und auf diesem Rechner immer gestartet sein muss. Es ist ein sehr altes Programm, welches sich nicht als Dienst ausführen lässt.

Grüße
Faux

Luckie 23. Mai 2006 16:25

Re: Prüfen ob Programm läuft
 
Hol dir eine Prozessliste mit MSDN-Library durchsuchenEnumProcesses und guck, ob dein Prozess dabei ist.

Olli 23. Mai 2006 16:37

Re: Prüfen ob Programm läuft
 
Zitat:

Zitat von faux
Ein Freund (soll heißen ich kann nichts weiteres über dieses Programm sagen) braucht ein Programm, welches ein Programm, wenn es beendet wurde, sofort wieder startet, da es sich um ein Programm handelt, welches bestimmte Scannvorgänge übernimmt und auf diesem Rechner immer gestartet sein muss. Es ist ein sehr altes Programm, welches sich nicht als Dienst ausführen lässt.

Dann würde ich zu einer Endlosschleife mit Hier im Forum suchenShellExecuteAndWait greifen.

faux 23. Mai 2006 16:48

Re: Prüfen ob Programm läuft
 
Hallo!

Das mit der Endlosschleife ist grundsätzlich keine schlechte Idee, aber mich interessiert Luckies Vorschlag trotzdem. Könnte mir da mal wer ein kurzes Beispiel geben, denn ich scheitere gerade kläglich an der Implementation. :oops:

Grüße
Faux

dfried 23. Mai 2006 16:57

Re: Prüfen ob Programm läuft
 
Verwende doch einfach mal die Suche mit dem Stichwort "EnumProcesses" oder schau dir diesen Thread an.

Olli 23. Mai 2006 17:05

Re: Prüfen ob Programm läuft
 
Was nicht erwähnt wurde: MSDN-Library durchsuchenEnumProcesses wird von der PSAPI.DLL exportiert und die wiederum ist bei Win 9x/Me nicht standardmäßig dabei. Nur zur Beachtung ;)

Toolhelp-API ist die bessere Wahl, würde ich sagen.

faux 23. Mai 2006 17:42

Re: Prüfen ob Programm läuft
 
Zitat:

Zitat von Olli
Was nicht erwähnt wurde: MSDN-Library durchsuchenEnumProcesses wird von der PSAPI.DLL exportiert und die wiederum ist bei Win 9x/Me nicht standardmäßig dabei. Nur zur Beachtung ;)

Ja, das ahbe ich schon bemerkt (MSDN), Danke.

Naja, ich werde dann die Endlisschleifen verwenden.

Grüße
Faux

Luckie 23. Mai 2006 17:48

Re: Prüfen ob Programm läuft
 
Also bei mir läuft so langsam der Support für Windows 9x ab. :zwinker:

Olli 23. Mai 2006 17:51

Re: Prüfen ob Programm läuft
 
Zitat:

Zitat von Luckie
Also bei mir läuft so langsam der Support für Windows 9x ab. :zwinker:

Wenn der für 9x abläuft, dann wundert es mich, warum du die PSAPI empfiehlst, welche zwar nicht auf 9x/Me aber auf NT-Systemen läuft und mindestens ~1996 eingeführt wurde. Stattdessen wäre wohl die Toolhelp-API eine angemessenere Reaktion auf den "ausgelaufenen Support" ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 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 by Thomas Breitkreuz