Von Handle auf Dateinamen schliessen?
-
GetModuleFileName() <-- Auch nur für WinNT/2000/XP
-
[edit] quatsch [/edit]
Greetz, Swordfish
-
ach ihr piper ich sagte doch HANDLE nicht HMODULE^^
-
Entschuldige, dass ich dieser Aussage von WebFritzi beigepflichtet habe ^^
Funktioniert natürlich nicht.Greetz, Swordfish
-
Grrr.
Dann eben so:GetWindowThreadProcessId() --> Process-ID
OpenProcess() --> Process-Handle
GetModuleFileNameEx() mit hModule == NULL --> File-Name.So. Zufrieden?

-
Nö, probier's mal selber...
Greetz, Swordfish
-
OK, habsch jemacht. Ganz dörtie:
typedef DWORD (WINAPI *GMFEX)(HANDLE hProcess, HMODULE hModule, LPTSTR lpstrFileName, DWORD nSize); void __fastcall TForm1::Button1Click(TObject *Sender) { HWND hwnd = FindWindow(NULL, "Unbenannt - Editor"); DWORD dwPID; HANDLE hp; HMODULE hDll; TCHAR str[1024]; GetWindowThreadProcessId(hwnd, &dwPID); hp = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPID); hDll = LoadLibrary("Psapi.dll"); GMFEX gmfex = (GMFEX)GetProcAddress(hDll, "GetModuleFileNameExA"); gmfex(hp, NULL, str, 1024); FreeLibrary(hDll); CloseHandle(hp); Edit1->Text = str; }Ach ja, im Edit1 steht dann "C:\WINDOWS\system32\notepad.exe".

-
TirolerMensch schrieb:
Kann man eigentlich irgendwie von einem HANDLE welches man von CreateFile bekommt auf den Namen der Datei schließen zu der das Handle gehört? Gibt es da irgendwelche Tricks dafür oder ist es unmöglich?
Was sagst du jetzt??
*lol*Greetz, Swordfish
PS: Man beachte: Dateiname des durch CreateFile( ) geöffneten Handles.
-
Oha. Da hab ich aber voll daneben gelegen.

-
Swordfish schrieb:
Entschuldige, dass ich dieser Aussage von WebFritzi beigepflichtet habe ^^
Funktioniert natürlich nicht.Sag' ich schon seit 10 vor 3... Geh' schlafen

Greetz, Swordfish