1

我在我的程序中列出进程名称。首先,我使用“EnumProcesses”来获取所有 PID。然后我得到这样的进程名称:

hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pid );
if( hProcess ) {
    EnumProcessModules( hProcess, &hModule, sizeof(hModule), NULL);
    GetModuleFileNameExW( hProcess, hModule, (LPWSTR)fileName, 100*sizeof(wchar_t) );

    printf ("[%d] 0x%08X %d - %ws \n", i, hProcess, pid, fileName);
}

我可以在winxp中获取所有进程。但是,在 Win7 中,Some Process 的句柄为 NULL,所以我无法获取它的信息。像这样:

在此处输入图像描述

我不知道为什么。谁能告诉我为什么?谢谢你。

4

1 回答 1

3

权限(您需要 SEDebugPrivilege 枚举所有权限)或您尝试从 32 位进程枚举 64 位进程

于 2013-02-20T08:47:47.700 回答