我可以获得用户帐户名,该帐户名使用指定的ID运行。这有什么api功能吗?
我正在使用windows,c ++。
答案 0 :(得分:12)
没有直接执行此操作的API函数,但是您可以组合一些API调用来执行此操作。当然,您的程序需要满足应用于您有兴趣检查的过程的任何ACL。
首先,给定进程ID,您需要打开进程的句柄。您可以使用OpenProcess
,请求PROCESS_QUERY_INFORMATION
访问权限。
完成此操作后,您可以致电OpenProcessToken
,请求TOKEN_QUERY
访问权限。
最后,您可以调用GetTokenInformation
,请求TokenUser
信息类,它将为您提供令牌的用户帐户。此信息以SID
的形式提供给您。要将SID
转换为帐户的实际名称,您可以拨打LookupAccountSid
。
完成后,不要忘记在进程句柄和令牌句柄上调用CloseHandle
。