Von PID oder hWnd auf den EXE-Namen schließen
Von PID oder hWnd auf den EXE-Namen schließen
Hallo!
Was ich früher mit Hilfe von Libs gemacht habe, will ich nun selbst realiseren.
Mir steht von einem Programm ("Tactical Ops") das Fenster-Handle zur Verfügung. Daraus kann ich wenn nötig die PID (Process ID) ermitteln. Soweit die Theorie.
Nun benötige ich aber den Pfad+EXE-Namen, der sich hinter der PID/hWnd verbirgt. Ich habe nun eine lange Suche hinter mir, sowohl im PB Forum, als auch in Google und der MSDN, aber ich finde nichts passendes.
Helft ihr mir?
Was ich früher mit Hilfe von Libs gemacht habe, will ich nun selbst realiseren.
Mir steht von einem Programm ("Tactical Ops") das Fenster-Handle zur Verfügung. Daraus kann ich wenn nötig die PID (Process ID) ermitteln. Soweit die Theorie.
Nun benötige ich aber den Pfad+EXE-Namen, der sich hinter der PID/hWnd verbirgt. Ich habe nun eine lange Suche hinter mir, sowohl im PB Forum, als auch in Google und der MSDN, aber ich finde nichts passendes.
Helft ihr mir?
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Code: Alles auswählen
GetWindowModuleFileName_()

Hat mich exakt 1 Minute gekostet!
Dieser Befehl ist im MS Platform SDK gelistet. Falls du das noch nicht installiert hast wird es dringend Zeit!

Du wirst es nicht glauben, aber den Befhel habe ich auch gefunden!
Aber diese Funktion verlangt "handle to module to find filename for". Ich habe aber kein Handle zu irgendeinem modul, sondern nur die PID/hWnd.
Ich habe auch schon weiter gesucht, aber ich weiß nicht, wie ich GetModulehandle_() in diese ganze Sache einbringen soll.

Aber diese Funktion verlangt "handle to module to find filename for". Ich habe aber kein Handle zu irgendeinem modul, sondern nur die PID/hWnd.
Ich habe auch schon weiter gesucht, aber ich weiß nicht, wie ich GetModulehandle_() in diese ganze Sache einbringen soll.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Öhmmm.......Mir steht von einem Programm ("Tactical Ops") das Fenster-Handle zur Verfügung.
Code: Alles auswählen
OpenWindow(0,0,0,320,240,"")
lpBuffer = AllocateMemory(255)
GetWindowModuleFileName_(WindowID(0),lpBuffer,255)
Debug PeekS(lpBuffer)
While WaitWindowEvent() ! 16 : Wend
> PS: Lass nicht von Microsofts Namenskonventionen verwirren!
Danke für den Tipp! Wie gesagt, hätte es da richtig gestanden, das man auch hWnd's einsetzen darf, müsste ich nicht fragen.
Jetzt kann man natürlich sagen: Warum nicht ausprobieren? Dann kan ich natürlich sagen: Schon mal nen pinguin innen Kühlschrank gesteckt? Nur weil's nicht in der Bedienungsanleitung steht, heißt es nicht, dass es auch geht...
> Öhmmm.......
Ja?
Danke für den Tipp! Wie gesagt, hätte es da richtig gestanden, das man auch hWnd's einsetzen darf, müsste ich nicht fragen.
Jetzt kann man natürlich sagen: Warum nicht ausprobieren? Dann kan ich natürlich sagen: Schon mal nen pinguin innen Kühlschrank gesteckt? Nur weil's nicht in der Bedienungsanleitung steht, heißt es nicht, dass es auch geht...
> Öhmmm.......
Ja?

PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Ach AND51 du alte Flitzpiepe...Danke für den Tipp! Wie gesagt, hätte es da richtig gestanden, das man auch hWnd's einsetzen darf, müsste ich nicht fragen.
Herlich wie versuchst deine Inkompetenz zu kaschieren!

Guckst du hier was SDK gesagt hat:
Außerdem ist der erste Parameter dieses Befehls vom Typ HWND.The GetWindowModuleFileName function retrieves the full path and file name of the module associated with the specified window handle.

Ich fühle mich ertappt...Fluid Byte hat geschrieben:[Herlich wie versuchst deine Inkompetenz zu kaschieren!![]()

Aber ehrlich: Ich habe in der WIN32.hlp nachgeschaut, dort steht das etwas anders:
Dort steht: handle to module, nicht handle to window...WIN32.hlp hat geschrieben:DWORD GetModuleFileName(
HMODULE hModule, // handle to module to find filename for
LPTSTR lpFilename, // pointer to buffer for module path
DWORD nSize // size of buffer, in characters
);
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
>> WIN32.hlp hat folgendes geschrieben:
Was ist das für eine Version, wo das enthalten ist?
Was ist das für eine Version, wo das enthalten ist?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Moment, ich schaue nach... Ich weiß aber, dass ich sie von jemanden aus dem Forum erhalten habe (darkDragon?)...
Edit:

Meine derzeitige WIN32.hlp-Version
Jetzt weiß ich auch, warum das Wort "XP" in der Hilfe nirgendwo auftaucht: XP erschien erst 2001...
Das neueste, was dort ab und zu steht ist "Now supported on Win NT"
Edit:

Meine derzeitige WIN32.hlp-Version
Jetzt weiß ich auch, warum das Wort "XP" in der Hilfe nirgendwo auftaucht: XP erschien erst 2001...

PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Meine Version zeigt dasselbe an, aber "GetWindowModuleFileName" ist weder
im Index noch in der Suche
Aber nicht so wichtig, hab mich nur gewundert.
//Nachtrag:
Du hast den falschen Befehl rausgesucht: Nicht "GetModuleFileName", da
fehlt das Window drinn
im Index noch in der Suche

Aber nicht so wichtig, hab mich nur gewundert.
//Nachtrag:
Du hast den falschen Befehl rausgesucht: Nicht "GetModuleFileName", da
fehlt das Window drinn

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
