EnumProcessModulesEx 枚举模块,拒绝访问

qq_616086886 2018-02-02 08:58:57

const int PROCESS_QUERY_INFORMATION = 0x0400;
const int PROCESS_VM_READ = 0x0010;
const int LIST_MODULES_ALL = 0x03;

IntPtr hCalc = Win32.OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, false, G.hProcess);

if (Win32.EnumProcessModulesEx(hCalc, pModules, size, out cbNeeded, LIST_MODULES_ALL))
{
//省略的代码

}
else {
GetSysErrMsg(Marshal.GetLastWin32Error()); //此处返回5:拒绝访问。
return;
}

public static string GetSysErrMsg(int errCode)
{
IntPtr tempptr = IntPtr.Zero;
string msg = null;
Win32.FormatMessage(0x1300, ref tempptr, errCode, 0, ref msg, 255, ref tempptr);
Console.WriteLine(errCode + ":" + msg);
return msg;
}


运行结果:5:拒绝访问。
...全文
1395 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
羽化大刀 2018-03-31
  • 打赏
  • 举报
回复
1.系统进程是无法读取信息的 2.部分进程需要提权
smwhotjay 2018-02-03
  • 打赏
  • 举报
回复
枚举dll ? 参看核心编程 有个walk例子
oyljerry 2018-02-03
  • 打赏
  • 举报
回复
有些系统进程有保护,不允许访问
Eleven 2018-02-02
  • 打赏
  • 举报
回复
你的程序如果以管理员权限运行呢?
zgl7903 2018-02-02
  • 打赏
  • 举报
回复
qq_616086886 2018-02-02
  • 打赏
  • 举报
回复
补充一下,只是某些进程拒绝访问,而有些进程又可以正常枚举,怀疑是权限问题,请高手指点

15,471

社区成员

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

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