![]() |
ProcessName -> processId
Hi,
ist es möglich aus dem ProcessNamen die ProcessID zu bekommen :gruebel: Mfg ReDoX |
Re: ProcessName -> processId
mich würde eher interessieren wie es andersrum geht....
|
Re: ProcessName -> processId
|
Re: ProcessName -> processId
Hier mal eine nicht immer funktionierende variante:
Delphi-Quellcode:
Aber es muss doch auch anders gehen, oder?
function ProcToID(sProcName: String): Integer;
var hProcSnap: THandle; pe32: TProcessEntry32; begin result := -1; 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 if pos(sProcName, pe32.szExeFile) <> 0 then result := pe32.th32ProcessID; end; CloseHandle(hProcSnap); end; Mfg ReDoX |
Re: ProcessName -> processId
Und was funktioniert da nicht? :roll:
|
Re: ProcessName -> processId
Also ich habe nicht gesagt das sie nicht funktioniert sondern ich habe gesagt das sie manchmal nicht funktioniert :stupid: , weil
Delphi-Quellcode:
der Processname nicht immer in dem Pfad enthalten ist z.B.: durch Umbennenen. :wink:
if pos(sProcName, pe32.szExeFile) <> 0 then
Mfg ReDoX |
Re: ProcessName -> processId
Wenn jemand den Dateinamen umbenennt, wärend die Schleife läuft, dann hast du eben Pech gehabt.
|
Re: ProcessName -> processId
Ok dann habe ich pech gehabt ...
Naja man kann halt nicht alles haben also Danke für die hilfe :thumb: Mfg ReDoX |
Re: ProcessName -> processId
Moin Redox,
denk' dran, dass Pos die Gross-/Kleinschreibung beachtet. Vielleicht solltest noch AnsiUpperCase (oder Lower) verwenden. |
Re: ProcessName -> processId
Delphi-Quellcode:
function ProcToID(sProcName: String): Integer;
var hProcSnap: THandle; pe32: TProcessEntry32; S: String; begin Result := -1; hProcSnap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if hProcSnap <> INVALID_HANDLE_VALUE then begin if Process32First(hProcSnap, pe32) then begin repeat if Win32Platform = VER_PLATFORM_WIN32_WINDOWS then S := ExtractFileName(pe32.szExeFile) else S := pe32.szExeFile; if SameText(S, sProcName) then begin Result := pe32.th32ProcessID; Break; end; until (not Process32Next(hProcSnap, pe32)); end; CloseHandle(hProcSnap); end; end |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 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