AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ProcessName -> processId

Ein Thema von ReDoX · begonnen am 3. Apr 2005 · letzter Beitrag vom 3. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
ReDoX
(Gast)

n/a Beiträge
 
#1

ProcessName -> processId

  Alt 3. Apr 2005, 18:25
Hi,
ist es möglich aus dem ProcessNamen die ProcessID zu bekommen
Mfg ReDoX
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: ProcessName -> processId

  Alt 3. Apr 2005, 18:38
mich würde eher interessieren wie es andersrum geht....
Lukas Erlacher
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: ProcessName -> processId

  Alt 3. Apr 2005, 18:47
Andersrum: MSDN-Library durchsuchenOpenProcess -> MSDN-Library durchsuchenGetModuleFileNameEx.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ReDoX
(Gast)

n/a Beiträge
 
#4

Re: ProcessName -> processId

  Alt 3. Apr 2005, 19:17
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: ProcessName -> processId

  Alt 3. Apr 2005, 19:30
Und was funktioniert da nicht?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ReDoX
(Gast)

n/a Beiträge
 
#6

Re: ProcessName -> processId

  Alt 3. Apr 2005, 19:39
Also ich habe nicht gesagt das sie nicht funktioniert sondern ich habe gesagt das sie manchmal nicht funktioniert , weil
   if pos(sProcName, pe32.szExeFile) <> 0 then der Processname nicht immer in dem Pfad enthalten ist z.B.: durch Umbennenen.
Mfg ReDoX
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: ProcessName -> processId

  Alt 3. Apr 2005, 19:44
Wenn jemand den Dateinamen umbenennt, wärend die Schleife läuft, dann hast du eben Pech gehabt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ReDoX
(Gast)

n/a Beiträge
 
#8

Re: ProcessName -> processId

  Alt 3. Apr 2005, 19:48
Ok dann habe ich pech gehabt ...
Naja man kann halt nicht alles haben also Danke für die hilfe
Mfg ReDoX
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: ProcessName -> processId

  Alt 3. Apr 2005, 20:10
Moin Redox,

denk' dran, dass Pos die Gross-/Kleinschreibung beachtet.
Vielleicht solltest noch AnsiUpperCase (oder Lower) verwenden.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#10

Re: ProcessName -> processId

  Alt 3. Apr 2005, 20:10
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
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz