M
Barny_ schrieb:
@geeky
Wenn ich dieses Projekt richtig verstehe, dann kann man nur das Programm ermitteln, der die Datei geöffnet hat aber nicht wer bzw. wo.
...
Hat zufällig jemand ein Beispiel das auch unter WinXP funktioniert?
Vielleicht so:
Mit dem Ansatz von geeky bekommt man die ProzessID raus
PSYSTEM_HANDLE_INFORMATION pSysHandleInformation = new SYSTEM_HANDLE_INFORMATION;
DWORD size = sizeof(SYSTEM_HANDLE_INFORMATION);
DWORD needed = 0;
NTSTATUS status = NtQuerySystemInformation( SystemHandleInformation,
pSysHandleInformation, size, &needed );
Mit der ProzessID die SID
Searching for a SID in an Access Token in C++
http://msdn.microsoft.com/en-us/library/windows/desktop/aa379554(v=vs.85).aspx
OpenProcessToken( GetCurrentProcess(), TOKEN_QUERY, &hToken )
Danach wird man vermutlich auch die SID noch in einen Benutzernamen
umrechnen koennen.
Auch koennte das hier weiterhelfen
Get Process Info with NtQueryInformationProcess
http://www.codeproject.com/Articles/19685/Get-Process-Info-with-NtQueryInformationProcess