稼動中のプロセスの列挙

  • デル株式会社
  •  

    #include "stdafx.h"
    #include "TestExe.h"
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif

    #include <tlhelp32.h>
    #include <conio.h> 

    CWinApp theApp;

    using namespace std;

    int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
    {
       int nRetCode = 0;

       // MFC を初期化して、エラーの場合は結果を印刷します。
       if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
       {
           // TODO: 必要に応じてエラー コードを変更してください。
           _tprintf(_T("致命的なエラー : MFC の初期化ができませんでした。\n"));
           nRetCode = 1;
       }
       else
       {

           //#include <tlhelp32.h>

           PROCESSENTRY32 pProc;
           BOOL    bFlag    = FALSE;    //戻り値
           HANDLE    hSnap    = NULL;        //スネップショット操作用ハンドル

           //初期化
           ::ZeroMemory( &pProc, sizeof( pProc ) );

           //スナップショットの取得
           hSnap    = ::CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );

           pProc.dwSize = sizeof( pProc );

           //スナップショットの先頭を取得
           bFlag = ::Process32First( hSnap, &pProc );

           while( bFlag == TRUE )
           {
               printf("プロセスID[%5d],\tプロセス名[%s],\n", pProc.th32ProcessID, pProc.szExeFile );

               //次のスナップショットを取得する。
               bFlag = ::Process32Next( hSnap, &pProc );
           }
       }

       printf( "終了します。キーを押して下さい。\n" );
       getch();

       return nRetCode;
    }

    関連記事

    ページ上部へ戻る