Anhand eines Window Handles den Pfad etc. herausfinden ???
-
Hallo,
ist es möglich anhand eines Window Handles den Pfad, und evtl. noch mehrere Informationen, über das Window herauszukriegen ?
Könnte man z.B. :
CWnd* pWnd = GetForegroundWindow();
nehmen und von diesem Window Pfad etc. herausfinden ?
Ich danke für jede Antwort ...
Hero7
-
- GetWindowModuleFileName
- GetWindowInfo
- GetWindowThreadProcessId
-
Hi SeppSchrot
SeppSchrot schrieb:
- GetWindowModuleFileName
GetWindowModuleFileName habe ich schon versucht, doch leider liefert GetWindowModuleFileName nur den Pfad des eigenen Windows und nicht das eines anderen ...
SeppSchrot schrieb:
- GetWindowInfo
GetWindowInfo habe ich auch schon versucht, kann ich leider nicht verwenden, da ich kein .NET benutze (sondern 6.0) ...
SeppSchrot schrieb:
- GetWindowThreadProcessId
GetWindowThreadProcessId habe ich noch nicht getestet ... erstmal Danke !
Hero7
-
Hmm,
meine Anwort war wohl etwas zu knapp, deswegen hast du mich missverstanden.
Ich meinte die reinen WinAPI Funktionen, nicht die MFC-Methoden der CWnd-Klasse. (Hätte ich in einem MFC Forum vielleicht extra hinschreiben sollen)
Wenn du sie so aufrufst, sind sie nicht an das Fenster gebunden, sondern du kannst ein beliebiges Fensterhandle übergeben.
Rufe die Funktionen mit vorgestellten "::" auf, um sicherzugehen, dass du nicht die Methoden der Fensterklasse aufrufst.
Hier nochmal die MSDN Links:
-
Danke SeppSchrot, doch leider funktioniert es noch nicht so wie es funktionieren soll ...
Es entstehen Fehler bei diesem Code :
HWND hwnd = ::GetForegroundWindow(); LPTSTR lpszFileName; UINT cchFileNameMax; GetWindowModuleFileName(hwnd, lpszFileName, cchFileNameMax);
Folgende Fehler entstehen :
error C2065: 'GetWindowModuleFileName' : undeclared identifier
Und wenn ich
::GetWindowModuleFileName(...)
schreibe, dann entstehen diese Fehler :
error C2039: 'GetWindowModuleFileName' : is not a member of '`global namespace''
error C2065: 'GetWindowModuleFileName' : undeclared identifier
Weißt du was ich falsch mache ... ?`
Danke
-
Leider sehe ich den Fehler jetzt auch nicht, in einem einen WinApi Projekt funktionierts.
Es hat anscheinend irgendetwas damit zu tun, das von der stdafx.h Dinge definiert werden, die in der "WinUser.h" verhindern, dass die Funktion deklariert wird.
Evtl. hat es etwas damit zu tun, als was WINVER definiert wurde.Du kannst dir vielleicht notdürftig damit helfen, in der Datei stfafx.h die 4 #defines, die jeweils nach den #ifndef kommen auszukommentieren.
Das hat bei mir geholfen.
Allerdings ist das wirklich eine sehr schlechte Lösung, da du damit in den Systemdateien rumspielst, die ja für andere Projekte auch gebraucht werden.
Also vorsicht!Vielleicht weiß ja jemand anders Rat , welche Präprozessordefinitionen nötig sind ? Ich kenne ja auch deine Windowsversion nicht.
-
Mein Betriebssystem ist Win XP - SP2
Doch falls du diese WINVER befehle meinst, die helfen bei mir nicht. Bei einem ähnlichen Projekt wurden mir immer undeclared indentifier's angezeigt, dann habe ich diese WINVER Befehle includiert, doch das hat nix geholfen ...
#define _WIN32_WINNT 0x0400 #define WINVER 0x0400
... ?
Danke