![]() |
Abfragen ob ein Prozess läuft
Hi @ all,
Ich schreibe gerade an einem Tool das einen bzw. mehreren Prozessen sucht und wenn es dann eins gefunden hat etwas macht. Leider habe ich in der Forumsuche nichts gefunden also hoffe ich das ihr mir vll weiterhelfen könnt. Mfg, Mario |
Re: Abfragen ob ein Prozess läuft
Hi!
Sag uns doch bitte, an was du den Prozess erkennen willst. An der exe oder an der Prozess-ID? Oder an etwas ganz anderem? |
Re: Abfragen ob ein Prozess läuft
Hi,
mit dieser procedure kannst du die Prozesse aktiven auflisten:
Delphi-Quellcode:
procedure ListProcess(lb: TListbox);
var hProcSnap: THandle; pe32: TProcessEntry32; begin hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0); if hProcSnap = INVALID_HANDLE_VALUE then exit; pe32.dwSize := SizeOf(ProcessEntry32); if Process32First(hProcSnap, pe32) = true then while Process32Next(hProcSnap, pe32) = true do begin // Prozess hinzufügen lb.Items.Add(pe32.szExeFile); end; CloseHandle(hProcSnap); end; |
Re: Abfragen ob ein Prozess läuft
Zitat:
Folgendes: Ich starte ein Spiel und das Tool soll mir sagen ob das spiel läuft oder nicht. EDIT: Zitat:
|
Re: Abfragen ob ein Prozess läuft
ehmm, Kommando zurück. Muss ich noch eine Unit einbinden? Der Compiler gibt mir 3 Fehlermeldungen.
Code:
[Error] Unit1.pas(31): Undeclared identifier: 'TProcessEntry32'
[Error] Unit1.pas(33): Undeclared identifier: 'CreateToolHelp32SnapShot' [Error] Unit1.pas(33): Undeclared identifier: 'TH32CS_SNAPPROCESS' |
Re: Abfragen ob ein Prozess läuft
Yep,
und zwar die Unit "tlhelp32". |
Re: Abfragen ob ein Prozess läuft
OK, jetzt funzt es, thx. :thumb:
|
Re: Abfragen ob ein Prozess läuft
Mit Baeuerle's Routine wirst du nicht viel Erfolg haben, da es keine sichere Methode gibt um von einem Prozeß auf ein Image zu schließen (dazu sind die verwendeten Puffer zu klein - und zwar bereits innerhalb der Native API).
|
Re: Abfragen ob ein Prozess läuft
ja sobald du zwei prozesse mit gleichem namen laufen hast, ist das hinfällig.
Arnulf |
Re: Abfragen ob ein Prozess läuft
Zitat:
Beispiel: ich habe den Apache und den Apache Monitor laufen. Das Modul letzteren Programms heißt ApacheMonitor.exe, sowohl die ToolHelp-API als auch der TaskManager (der direkt die Native APIs benutzt) geben aber folgendes aus: "ApacheMonitor.e". Das Problem ist übertragbar auf andere lange Dateinamen und auch auf andere Systeme. Kurz es ist nachvollziehbar. Ein einfacher Vergleich mit "ApacheMonitor.exe" würde hier also fehlschlagen, obwohl der Prozeß eindeutig auf exakt diesem Modul basiert. |
Re: Abfragen ob ein Prozess läuft
Zitat:
|
Re: Abfragen ob ein Prozess läuft
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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