通过Win7中的pid获取进程信息

时间:2013-02-20 07:52:09

标签: c windows-7

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

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,所以我无法得到它的信息。像这样:

enter image description here

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

1 个答案:

答案 0 :(得分:3)

任一权限(您需要SEDebugPrivilege来枚举所有这些权限)或者您尝试从32位进程枚举64位进程