Próbuję uzyskać ścieżkę procesu przez pid, ale otrzymuję komunikat Win32Exception (odmowa dostępu).Odmowa dostępu podczas pobierania ścieżki procesu
Kod wygląda następująco:
string path = Process.GetProcessById(pid).MainModule.FileName
Próbowałem, używając OpenProcess z GetModuleFileNameEx ale OpenProcess wraca 0. Próbowałem nawet umożliwiając SeDebugPrivilege według C# – How to enable SeDebugPrivilege ale to nie pomogło.
Powyższy kod działa dla większości procesów, ale generuje błąd dla programu SynTPHelper.exe (Synaptics Pointing Device Helper) Aplikacja działa pod tą samą nazwą użytkownika co mój kod. Zarówno moja aplikacja, jak i proces są uruchamiane w 64-bitowej wersji.
Czy mogę odzyskać ścieżkę bez z uruchomieniem mojej aplikacji jako administrator?
Edit
Task Manager jest w stanie „otwartym lokalizacji pliku” mimo, że nie uciekam go jako administrator.
Wielkie dzięki za http://www.aboutmycode.com/net-framework/how-to-get-elevated-process-path-in-net/ (to samo Giorgi?). Simple Copy/Past/Reformat/Dodaj trochę przestrzeni nazw i działa !!! :) –
@Andreas: Tak, to tylko mój blog. – Giorgi
PROCESS_QUERY_LIMITED_INFORMATION = 0x1000; http://msdn.microsoft.com/en-us/library/windows/desktop/ms684880(v=vs.85).aspx – Jason