Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi ProcessName -> processId (https://www.delphipraxis.net/43411-processname-processid.html)

ReDoX 3. Apr 2005 17:25


ProcessName -> processId
 
Hi,
ist es möglich aus dem ProcessNamen die ProcessID zu bekommen :gruebel:
Mfg ReDoX

DGL-luke 3. Apr 2005 17:38

Re: ProcessName -> processId
 
mich würde eher interessieren wie es andersrum geht....

Luckie 3. Apr 2005 17:47

Re: ProcessName -> processId
 
Andersrum: MSDN-Library durchsuchenOpenProcess -> MSDN-Library durchsuchenGetModuleFileNameEx.

ReDoX 3. Apr 2005 18:17

Re: ProcessName -> processId
 
Hier mal eine nicht immer funktionierende variante:

Delphi-Quellcode:
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;
Aber es muss doch auch anders gehen, oder?
Mfg ReDoX

Luckie 3. Apr 2005 18:30

Re: ProcessName -> processId
 
Und was funktioniert da nicht? :roll:

ReDoX 3. Apr 2005 18:39

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:
   if pos(sProcName, pe32.szExeFile) <> 0 then
der Processname nicht immer in dem Pfad enthalten ist z.B.: durch Umbennenen. :wink:
Mfg ReDoX

Luckie 3. Apr 2005 18:44

Re: ProcessName -> processId
 
Wenn jemand den Dateinamen umbenennt, wärend die Schleife läuft, dann hast du eben Pech gehabt.

ReDoX 3. Apr 2005 18:48

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

Christian Seehase 3. Apr 2005 19:10

Re: ProcessName -> processId
 
Moin Redox,

denk' dran, dass Pos die Gross-/Kleinschreibung beachtet.
Vielleicht solltest noch AnsiUpperCase (oder Lower) verwenden.

Sprint 3. Apr 2005 19:10

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.
Seite 1 von 2  1 2      

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