Pfade der gestarteten Programme
verstehe ich jetzt nicht. Klappt bei Dir der von mir gepostete Code nicht?a14xerus hat geschrieben:wie bekomme ich aus der Fenster-HWND den Pfad
Oder meinst Du was anderes?
Grüße ... Kiffi
a²+b²=mc²
nein wenn ich nur die HWND eines Fensters habe...
die die man bei PB durch WindowID() rauskriegen würde....
das ist doch nicht die PID, oder???, weil ein Prozess kann ja auch mehrere Fenster haben..
Also wenn ich NUR die Fenster HWND hab, wie komm ich dann an den Pfad vom Programm, zu dem das Fenster gehört
die die man bei PB durch WindowID() rauskriegen würde....
das ist doch nicht die PID, oder???, weil ein Prozess kann ja auch mehrere Fenster haben..
Also wenn ich NUR die Fenster HWND hab, wie komm ich dann an den Pfad vom Programm, zu dem das Fenster gehört
Müsste so gehen.
FF 
Code: Alles auswählen
hWnd = FindWindow_(0, "PureBasic")
If hwnd
hInst = GetWindowLong_(hWnd, #GWL_HINSTANCE)
EndIf
file.s = Space(1000)
GetModuleFileName_(hInst, file, 1000)
Debug "Window : " + Str(hWnd)
Debug "hInstance : " + Str(hInst)
Debug "File : " + File

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Erst dachte ich so: "Cool", aber dann:.. mistmk-soft hat geschrieben:Müsste so gehen.
FFCode: Alles auswählen
hWnd = FindWindow_(0, "PureBasic") If hwnd hInst = GetWindowLong_(hWnd, #GWL_HINSTANCE) EndIf file.s = Space(1000) GetModuleFileName_(hInst, file, 1000) Debug "Window : " + Str(hWnd) Debug "hInstance : " + Str(hInst) Debug "File : " + File

Es wird immer der Pfad des eigenen Programms geliefert.
- 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
PSDK unter Tool Help Functions nachsehen:
CreateToolhelp32Snapshot
sich die Strukturen zu Modul32.., Thread32.. usw ansehen oder einfach im
API forum den fertigen Code finden
CreateToolhelp32Snapshot
sich die Strukturen zu Modul32.., Thread32.. usw ansehen oder einfach im
API forum den fertigen Code finden

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.

Code: Alles auswählen
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
);
- 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
Mit FindWindow_ kriegste den hWnd, mithilfe des hWnd die PID und
mithilfe der PID kannste Toolhelp schnappschuß und Module32First
usw., da steht der Name dann schon in der Structure.
Wenn ich mich an die damalige Frage erinnern könnte, würde ich
es ja raussuchen, nochmal machen hab ich keinen Bock
mithilfe der PID kannste Toolhelp schnappschuß und Module32First
usw., da steht der Name dann schon in der Structure.
Wenn ich mich an die damalige Frage erinnern könnte, würde ich
es ja raussuchen, nochmal machen hab ich keinen Bock

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.

- 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
Hab in meinen templates

Code: Alles auswählen
EnableExplicit
Procedure.s GetEXEFromHwnd(hWnd.l = 0)
Protected Result.s, PID.l, handle.l, err.l
Protected Entry.MODULEENTRY32
If hWnd = 0 : hWnd = GetForegroundWindow_() : EndIf
Entry\dwSize = SizeOf(MODULEENTRY32)
GetWindowThreadProcessId_(hWnd, @PID)
handle = CreateToolhelp32Snapshot_(#TH32CS_SNAPMODULE, PID)
If handle
err = Module32First_(handle, Entry)
If err
Result = PeekS(@Entry\szExePath)
EndIf
CloseHandle_(handle)
EndIf
ProcedureReturn Result
EndProcedure
Define.l hWnd = FindWindow_(0, "PureBasic")
Debug GetEXEFromHwnd(hWnd)
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.
