LboxNT5


  EnumProcess (Windows 95 以上)



  
// *********************************************************
// リストビューにプロセス一覧を設定
// 戻り値 : 無し
// *********************************************************
void LboxNT5::EnumProcess( LboxListview *Lview )
{
	Lview->Initialize();
	Lview->AddColumn( LVCFMT_LEFT, 100, "" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "ID" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "親プロセス ID" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "実行ファイル" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "実行されたスレッド" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "スレッド用基準Priority" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "参照カウント" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "Default Heap ID" );
	Lview->AddColumn( LVCFMT_LEFT, 100, "Module ID" );

	HANDLE hSnapshot;
	PROCESSENTRY32 pe;
	BOOL bRet;
	int nCnt;

	hSnapshot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
	if ( hSnapshot != (HANDLE)-1 ) {
		ZeroMemory( &pe, sizeof(PROCESSENTRY32) );
		pe.dwSize = sizeof(PROCESSENTRY32);
		bRet = Process32First( hSnapshot, &pe );
		nCnt = 0;
		while( bRet ) {
			nCnt++;
			Lview->AddRow();
			Lview->SetColumnPrintf( 0, "%lu", nCnt );
			Lview->SetColumnPrintf( 1, "%lu", pe.th32ProcessID );
			Lview->SetColumnPrintf( 2, "%lu", pe.th32ParentProcessID );
			Lview->SetColumnPrintf( 3, "%s", pe.szExeFile );
			Lview->SetColumnPrintf( 4, "%ld", pe.cntThreads );
			Lview->SetColumnPrintf( 5, "%lu", pe.pcPriClassBase );
			Lview->SetColumnPrintf( 6, "%lu", pe.cntUsage );
			Lview->SetColumnPrintf( 7, "%lu", pe.th32DefaultHeapID );
			Lview->SetColumnPrintf( 8, "%lu", pe.th32ModuleID );

			ZeroMemory( &pe, sizeof(PROCESSENTRY32) );
			pe.dwSize = sizeof(PROCESSENTRY32);
			bRet = Process32Next( hSnapshot, &pe );
		}
		CloseHandle( hSnapshot );
		Lview->Fit();
	}
}
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ