○tlhelp32.hを使ったプロセスとPIDの列挙

Windows 95 98 ME 2000 XP で動作しますが、
WindowsNTでは動作しません。

デバッグウインドウに表示されます。


#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>

BOOL CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hCurInst,HINSTANCE hPrevInst,
					LPSTR lpsCmdLine,int nCmdShow ){

	PROCESSENTRY32 pe32 = {0};
	HANDLE hSnapshot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	if(!hSnapshot) return -1;

	pe32.dwSize = sizeof(pe32);
	if(!::Process32First(hSnapshot, &pe32)) return -2;

	do{
		char buff[256]="";
		sprintf(buff,"%s %d\n",pe32.szExeFile ,pe32.th32ProcessID);
		OutputDebugString(buff);

	}while(::Process32Next(hSnapshot, &pe32));

	::CloseHandle(hSnapshot);

	return 0;
}




▲トップページ > Windows と C++