社区
进程/线程/DLL
帖子详情
如何根据进程句柄获取该进程的用户名
duyalong
2012-01-13 04:53:43
我在多用户系统中通过枚举系统进程获取explorer.exe进程句柄的时候,成功获取了explorer.exe的句柄,但是由于多个用户都有explorer.exe进程,因此,得到的进程并不是当前用户对应的进程。
求如何通过获得的explorer.exe进程句柄来得到开启该进程的用户名呢
...全文
257
4
打赏
收藏
如何根据进程句柄获取该进程的用户名
我在多用户系统中通过枚举系统进程获取explorer.exe进程句柄的时候,成功获取了explorer.exe的句柄,但是由于多个用户都有explorer.exe进程,因此,得到的进程并不是当前用户对应的进程。 求如何通过获得的explorer.exe进程句柄来得到开启该进程的用户名呢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wangjieest
2012-01-29
打赏
举报
回复
分呢...结贴呢?
duyalong
2012-01-14
打赏
举报
回复
我使用楼上的方法成功解决了该问题,多谢!
散分结贴~
龙行天下之Sky
2012-01-13
打赏
举报
回复
CString GetProcessUserName(HANDLE hProcess)
{
HANDLE hToken = NULL;
BOOL bFuncReturn = FALSE;
CString strUserName = _T("");
PTOKEN_USER pToken_User = NULL;
DWORD dwTokenUser = 0;
TCHAR szAccName[MAX_PATH] = {0};
TCHAR szDomainName[MAX_PATH] = {0};
HANDLE hProcessToken = NULL;
if(hProcess != NULL)
{
// 提升本进程的权限
bFuncReturn = ::OpenProcessToken(hProcess,TOKEN_QUERY,&hToken);
if( bFuncReturn == 0) // 失败
{
return strUserName;
}
if(hToken != NULL)
{
::GetTokenInformation(hToken, TokenUser, NULL,0L, &dwTokenUser);
if(dwTokenUser>0)
{
pToken_User = (PTOKEN_USER)::GlobalAlloc( GPTR, dwTokenUser );
}
if(pToken_User != NULL)
{
bFuncReturn = ::GetTokenInformation(hToken, TokenUser, pToken_User, dwTokenUser, &dwTokenUser);
}
if(bFuncReturn != FALSE && pToken_User != NULL)
{
SID_NAME_USE eUse = SidTypeUnknown;
DWORD dwAccName = 0L;
DWORD dwDomainName = 0L;
PSID pSid = pToken_User->User.Sid;
bFuncReturn = ::LookupAccountSid(NULL, pSid, NULL, &dwAccName,
NULL,&dwDomainName,&eUse );
if(dwAccName>0 && dwAccName < MAX_PATH && dwDomainName>0 && dwDomainName <= MAX_PATH)
{
bFuncReturn = ::LookupAccountSid(NULL,pSid,szAccName,&dwAccName,
szDomainName,&dwDomainName,&eUse );
}
if( bFuncReturn != 0)
strUserName = szAccName;
}
}
}
if (pToken_User != NULL)
{
::GlobalFree( pToken_User );
}
if(hToken != NULL)
{
::CloseHandle(hToken);
}
return strUserName;
}
看看这个
GIS_wudi
2012-01-13
打赏
举报
回复
http://blog.csdn.net/zzz3265/article/details/1883208
看看这个帖子对你有没有帮助
根据
进程
ID
获取
进程
的
用户名
根据
进程
ID号,
获取
进程
的
用户名
,包括系统
用户名
,系统登录这
用户名
,LOCALSERVICE NETWORKSERVICE 都可以
获取
到
获取
进程
用户名
.txt
获取
进程
用户名
.txt
PID
获取
进程
用户名
的软件源码
PID
获取
进程
用户名
本人精心收集的VB源码,绝对实用
进程
用户名
思路.txt
进程
用户名
思路.txt
【PB代码】
获取
和结束
进程
PB 11.5做的
获取
和结束Windows
进程
例子。 注意:这个例子中,没有
获取
进程
对应的用户的功能,针对多用户同登一服务器使用的情况,如果结束某名称的
进程
,可能会导致别的用户的
进程
也被结束掉。
进程/线程/DLL
15,473
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章