C++ Holen Sie Sich Einen Benutzernamen Aus-Prozess
Ich habe ein Prozess-handle mit
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 0, THE_PROCESS_ID);
Wie kann ich den Benutzernamen des Benutzers, der den Prozess ausführt?
Ich bin mit nicht verwaltetem code (Nr. NET).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden OpenProcessToken, um die token (offensichtlich), dann GetTokenInformation mit der
TokenOwner
Flagge, um die SID des Besitzers. Dann können Sie LookupAccountSid den Benutzernamen.wenn WMI nicht eine option, dann verwenden Sie GetUserFromProcess unten, nimmt die Prozess-ID als Eingabeparameter und gibt den Benutzernamen und die Domäne:
WMI ist wohl der Weg des geringsten Widerstandes. Sie sollten auch in der Lage sein, um die token mit OpenProcessToken, dann GetTokenInformation, um die SID des Besitzers. Sie können dann aktivieren Sie die SID in einen Benutzernamen.
WMI sollte in der Lage sein, Ihnen zu sagen, dass die Informationen.
Ansonsten müssen Sie verlassen sich auf undokumentierte Spaß ntdll.dll.Es scheint, andere haben Lösungen gefunden, die nicht verwenden ntdll.dll -- verwenden Sie Sie eher als undokumentierte Sachen.c#
oderc++
langsam ist...