![]() |
Re: Prüfen, ob eine Anwendung läuft
Ich hätte da ein paar Fragen bzw. Anmerkungen zu deinem Code
Delphi-Quellcode:
zu (1): überspringst du bei der While-Schleife nicht den ersten Eintrag der mit Process32First gefunden wurde? Beim Aufruf von Process32Next, müsste doch der Wert den dir Process32First geliefert hat gleich wieder verloren gehen, oder?
function GetProcessID(Exename: string): DWORD;
var hProcSnap: THandle; pe32: TProcessEntry32; begin result := 0; hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0); if hProcSnap <> INVALID_HANDLE_VALUE then begin pe32.dwSize := SizeOf(ProcessEntry32); if Process32First(hProcSnap, pe32) = true then begin while Process32Next(hProcSnap, pe32) = true do // <--- Hier (1) begin if pos(Exename, pe32.szExeFile) <> 0 then // <--- Hier (2) result := pe32.th32ProcessID; end; end; CloseHandle(hProcSnap); end; end; ... Ok, ich hab die Hilfe für die 2 Funktionen noch nicht gelesen, aber sieht verdächtig aus. zu (2): wäre es nicht sicherer die Strings in pos vorher in Upper/LowerCase umzuwandeln? weil so ist es ein Unterschied ob du nach 'notepad.exe' oder 'NoTePaD.eXe' suchst, oder? Ich habe deinen Source nicht ausprobiert, falls alles so funktioniert ... sorry für die Anmerkungen, und Schande über mich. :wink: |
Re: Prüfen, ob eine Anwendung läuft
Zitat:
Groß/Kleinschreibung wird von Pos() nicht berücksichtigt, also ist das schon so O.K. ;) mfG mirage228 |
Re: Prüfen, ob eine Anwendung läuft
Zu eins: Stimmt, den Überspringe ich. Das macht aber nichts, da der erste Prozess der Leerlauf ist. Die Routine kommt aus einem Programm, wo ich den Leerlaufprozess nicht brauchen konnte.
|
Re: Prüfen, ob eine Anwendung läuft
Zitat:
...:cat:... |
Re: Prüfen, ob eine Anwendung läuft
[ot]
Zitat:
Zitat:
[/ot] Gruß Stephan |
Re: Prüfen, ob eine Anwendung läuft
Keine Ahnung, aber die Originalhilfe schreibt:
Delphi englisch Pos searches for Substr within S and returns an integer value that is the index of the first character of Substr within S. Pos is case-sensitive. ...:cat:... |
Re: Prüfen, ob eine Anwendung läuft
Und ich glaube, es wurde schon des öfteren festgestellt, das die Hilfe an dieser Stelle falsch ist. Kann es leider nicht ausprobieren, da ich weg muss. Bis nachher dann. :hi:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:24 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-2025 by Thomas Breitkreuz