RSS

Get Process Name from Process ID.

29 11月
/*  Get Process Name from Process ID. */
/*    Build: cl /EHsc EnumProcesses.cpp psapi.lib  */
#include <stdio.h>
#include <windows.h>
#include <psapi.h>

#define N 1024

int main()
{
 DWORD idProcess[N];
 DWORD cb = sizeof(DWORD) * N;
 DWORD cbNeeded;
 HMODULE hModule;
 DWORD cbReturned;
 WCHAR szBasename[N];

 if (EnumProcesses(idProcess, cb, &cbNeeded))
 {
   printf_s("Process ID : Process Name\n");
   DWORD* p = idProcess;
   int n = cbNeeded / sizeof(DWORD);
   for (int i = 0; i < n; i++)
   {
     HANDLE  hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, idProcess[i]);
     if (hProc == NULL)
       continue;
     if (EnumProcessModules(hProc, &hModule, sizeof(hModule), &cbReturned ))
     {
       ZeroMemory(szBasename, sizeof(szBasename));
       if (GetModuleBaseName(hProc, hModule, (LPSTR)szBasename, sizeof(szBasename)) != 0)
       {
         printf_s("%d : %s\n", idProcess[i], szBasename);
        }
      }

       CloseHandle(hProc);
     } 
   }
   else
   {
     printf_s("Failed.\n");
   }

 return 0;
}
 
コメントする

投稿者: : 2010/11/29 投稿先 C

 

タグ: , , ,

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中