Von Handle auf Dateinamen schliessen?
-
Ne, die NT API gibt's IMHO nicht auf 9x/ME. Aber in der
JEDI API Library - listing of the NT Native API Functions kannst du nachschauen, welche Funktionen ab welcher Version von Windows NT (ab 3.51 bis 2003 Server) existieren.Greetz, Swordfish
-
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