Prozess beenden
-
Morgen, ich hab einen Prozess den ich über OpenProcess öffnen möchte das funktioniert aber leider nicht ich bekomme im den Fehlercode 5 (Access denied).
Nachdem ich noch etwas in der MSDN gelesen habe bin ich auf folgendes gestossen:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa446619(v=vs.85).aspx
Mein Problem ist jetzt ich weiss nicht wie ich von dem Prozess das TokenHandle bekommen kann. ( Mit OpenProcess funktioniert es ja nicht. )
Hat wer eine Ahnung was man da machen kann?
-
Wenn Du keinen Zugriff hast, dann musst Du Dich an Deinen Administrator wenden...
-
O_o was ich bin der Admin.
Einen Debugger z.b. kann ich in den Prozess einhängen ...
-
Dann musst Du DIr nur die passenden Rechte holen, bevor Du OpenProcess aufrufst...
Siehe auch:
http://www.c-plusplus.net/forum/228631
-
Ah, jetzt gehts ich hatte einen Denkfehler ich dachte ich müsste in dem Zielprozess was ändern.
void SetDebugPrivileges() { void* tokenHandle; OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &tokenHandle); TOKEN_PRIVILEGES privilegeToken; LookupPrivilegeValue(0, SE_DEBUG_NAME, &privilegeToken.Privileges[0].Luid); privilegeToken.PrivilegeCount = 1; privilegeToken.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(tokenHandle, 0, &privilegeToken, sizeof(TOKEN_PRIVILEGES), 0, 0); CloseHandle(tokenHandle); }