为何用GetModuleFileNameEx获得系统中运行进程的路径时,有些可以成功而一些却失败?

Sword_Sharp 2003-10-09 03:48:20
如题! 谢谢!!
...全文
86 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sword_Sharp 2003-10-10
  • 打赏
  • 举报
回复
我是想获得其他进程的句柄
NowCan 2003-10-10
  • 打赏
  • 举报
回复
是啊,先执行上面的程序再看。
NowCan 2003-10-09
  • 打赏
  • 举报
回复
应该是权限问题,先获取DEBUG权限试试。

HANDLE hToken;
if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken))
{
TOKEN_PRIVILEGES tp;
tp.PrivilegeCount=1;
LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&tp.Privileges[0].Luid);
tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken,FALSE,&tp,sizeof(tp),NULL,NULL);
CloseHandle(hToken);
}
Sword_Sharp 2003-10-09
  • 打赏
  • 举报
回复
我跟踪了一下,发现OpenProcess(PROCESS_ALL_ACCESS, TRUE,nProcessID);有时获得的句柄时0;不知为何?
Sword_Sharp 2003-10-09
  • 打赏
  • 举报
回复
执行失败的都是系统中默认存在的进程。我确定获得的句柄有效!!
yaoha2003 2003-10-09
  • 打赏
  • 举报
回复
仔细调试一下就能得到答案,这样很难给你分析的,在GetModuleFileNameEx设断点
xiaohyy 2003-10-09
  • 打赏
  • 举报
回复
用GetLastError看看是什么问题
SlayerCarrier 2003-10-09
  • 打赏
  • 举报
回复
你确定那个handle是有效的吗?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧