AGB  ·  Datenschutz  ·  Impressum  







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

GetProcessById

Ein Thema von EWeiss · begonnen am 28. Apr 2018 · letzter Beitrag vom 28. Apr 2018
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

GetProcessById

  Alt 28. Apr 2018, 21:33
welche alternative gibt es da für Delphi?

Ich möchte den Namen sowie den WindowTitel des aktiven Process anhand der ID ermitteln.
Die ProcessId wäre als Beispiel
Zitat:
ProcessID = 4584
gruss

Geändert von EWeiss (28. Apr 2018 um 21:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: GetProcessById

  Alt 28. Apr 2018, 22:38
Über GetModuleFileNameEx kommst Du an den Dateinamen des Prozesses ran.
Fenstertitel wahrscheinlich über ein EnumWindow der Handles abfragbar.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: GetProcessById

  Alt 28. Apr 2018, 22:46
Über GetModuleFileNameEx kommst Du an den Dateinamen des Prozesses ran.
Fenstertitel wahrscheinlich über ein EnumWindow der Handles abfragbar.
Ne danke das ist klar!
Ich möchte es auf diese weise.
Code:
Process p = Process.GetProcessById((int)session.GetProcessID);
p.ProcessName);
p.MainWindowTitle);
Wenn es nicht geht dann lasse ich es alles andere ist zu viel aufwand für die 2 kleinen abfragen.
Dann ist es einfacher die SessionIdentifier zu parsen und die Sachen da raus zu fischen.
Aber wie gesagt muss nicht unbedingt sein.


gruss

Geändert von EWeiss (11. Jul 2019 um 16:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von timog
timog

Registriert seit: 26. Sep 2006
Ort: Landkreis Oldenburg (Oldb)
117 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: GetProcessById

  Alt 28. Apr 2018, 22:53
Der Funktion OpenProcess aus der unit PsAPI kann man eine PID übergeben; die liefert dann ein THandle zurück. Damit dann über GetModuleFileNameEx oder QueryFullProcessImageName den Modulnamen/Pfad zur Exe ermitteln und über GetWindowText den Fenstertitel.
Timo
Real Programmers are surprised when the odometers in their cars don't turn from 99999 to 9999A.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: GetProcessById

  Alt 28. Apr 2018, 22:53
Was soll ProcessName sein? Der Klassenname eines Prozesses?

Das hier sollte für den Dateinamen klappen:
Delphi-Quellcode:
Function PIDtoEXEName ( const PID : Integer ) : String;
var
 szExeFile: array[0..MAX_PATH - 1] of Char;
 hnd : Integer;
begin
  HND := OpenProcess( PROCESS_ALL_ACCESS, FALSE, PID );
  if HND <> 0 then
  begin
   if GetModuleFileNameEx(HND, 0, szExeFile, SizeOf(szExeFile)) = 0 then StrPCopy(szExeFile, '');
   Result := szExeFile;
   CloseHandle(HND);
  end;
end;
Gruß vom KodeZwerg

Geändert von KodeZwerg (28. Apr 2018 um 23:02 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: GetProcessById

  Alt 28. Apr 2018, 22:57
Der Funktion OpenProcess aus der unit PsAPI kann man eine PID übergeben; die liefert dann ein THandle zurück. Damit dann über GetModuleFileNameEx oder QueryFullProcessImageName den Modulnamen/Pfad zur Exe ermitteln und über GetWindowText den Fenstertitel.
Ich sagte schon das es mir zu viel aufwand ist.
Zitat:
Was soll ProcessName sein? Der Klassenname eines Prozesses?
Der EXE Name so wie er unter Prozesse im Taskmanager aufgelistet ist?

Danke vergesst es


gruss

Geändert von EWeiss (29. Apr 2018 um 05:17 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:54 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