社区
进程/线程/DLL
帖子详情
如何根据进程句柄获取该进程的用户名
duyalong
2012-01-13 04:53:43
我在多用户系统中通过枚举系统进程获取explorer.exe进程句柄的时候,成功获取了explorer.exe的句柄,但是由于多个用户都有explorer.exe进程,因此,得到的进程并不是当前用户对应的进程。
求如何通过获得的explorer.exe进程句柄来得到开启该进程的用户名呢
...全文
235
4
打赏
收藏
如何根据进程句柄获取该进程的用户名
我在多用户系统中通过枚举系统进程获取explorer.exe进程句柄的时候,成功获取了explorer.exe的句柄,但是由于多个用户都有explorer.exe进程,因此,得到的进程并不是当前用户对应的进程。 求如何通过获得的explorer.exe进程句柄来得到开启该进程的用户名呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
看看这个帖子对你有没有帮助
易语言 茶凉专用模块
参数 临时透明色, 整数型, 可空, (#颜色)指定某颜色为完全透明(完全透明处不属于该窗口) 可空为不指定 .参数 鼠标穿透, 逻辑型, 可空, 可空为假 真:窗口被鼠标穿透 .子程序 窗口图标隐藏, , 公开, 将窗口的图标清除...
Delphi开发技巧之-System
列举运行的
进程
列出所有登录到工作站的用户信息 创建精确定时器 取CPU名称 取windows, system, temporary 目录 取其它应用程序状态栏文本 取内存信息 取屏幕保护等待时间 取当前
用户名
取当前鼠标位置的
句柄
和类名 ...
Windows游戏编程系列之1:GUI窗口界面编程及游戏入门实战
1)GDI的通用编程框架 22 2)GDI的绘图步骤 25 3)GDI
获取
设备
句柄
25 4、GDI编程之绘制几何图形 画点、线 28 颜色COLORREF 29 矩形 29 画圆、饼图、弦图 30 5、GDI编程之自定义画笔画刷 画笔简介 32 画刷...
Visual C++开发经验技巧宝典(第9章)—1
0586
获取
当前
用户名
387 0587
获取
系统环境变量 387 0588 修改计算机名称 388 0589
获取
当前屏幕颜色质量 388 0590 获得当前屏幕的分辨率 388 9.8
进程
与线程 389 0591 如何使用TLS 389 0592 创建...
Super-EC.rar
' 增加"
进程
枚举2",支持枚举出
进程
用户名
感谢会员 qmz13579 提供 ' 增加"取
进程
用户名
", ' 增加"
进程
是否有效",类似于"
进程
是否存在",参数为
进程
ID ' 修改"
进程
取路径"为"取程序路径",增加可空参数,区分
进程
大小写 ...
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章