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では、一部のプロセスのハンドルがNULLであるため、その情報を取得できません。このような:

ここに画像の説明を入力してください

何故かはわからない。誰が私に理由を教えてくれますか?ありがとうございました。

4

1 に答える 1

3

アクセス許可(すべてを列挙するにはSEDebugPrivilegeが必要)または32ビットプロセスから64ビットプロセスを列挙しようとしている

于 2013-02-20T08:47:47.700 に答える