Jak wykryć czy wskazana przeze mnie uruchomiona aplikacja jest uruchomiona jako administrator (dotyczy Win Vista / 7).
Nie chodziło mi o to, żeby sprawdzić czy moja aplikacja jest uruchomiona jako administrator. Chodzi mi o to, że np. mój program wskazuje na proces, np. na "aplikacja1.exe" i sprawdza czy ten proces ma prawa administratora.
ciekawe, że chcesz sprawdzić, czy proces ma prawa admina, jeżeli proces można raczej tylko uruchomić z takimi uprawnieniami :)
Sprawdzić czy wskazana aplikacja, np. C:\program.exe została odpalona normalnie, czy prawy przycisk myszy -> Uruchom jako administrator.
Wiem, że da się to sprawdzić, bo u kogoś gdzieś takie coś widziałem.
Sposób jest tylko w połowie skuteczny:
Możesz odczytać manifest aplikacji i jeśli posiada parametr requireAdministrator
, to jest pewne, że został uruchomiony z najwyższymi uprawnieniami, bo innej możliwości nie ma.
Natomiast, jeśli tego parametru nie posiada manifest (lub w ogóle nie ma manifestu), to w tym przypadku aplikacja mogła nie zostać uruchomiona z najwyższymi uprawnieniami, ale zawsze istnieje możliwość poprzez menu kontekstowe i w tym przypadku musiałbyś znać inny sposób na odczytanie nadania uprawnień.
Może coś jak tu http://stackoverflow.com/questions/3546643/how-do-i-check-if-my-program-is-ran-by-user-as-administrator-vista-win7-c/4051152#4051152 tylko podstawić dany proces i wątek.
EDIT// A właściwie Misiekd podał chyba (nie chce mi sie już teraz dokładnie analizować kodu) to samo rozwiązanie