通过OpenProcess访问进程,返回进程HANDLE
方法1:
enableDebugPriv();
HWND hWnd = FindWindowA(NULL,"Windows Live Messenger"); //程序的标题栏
DWORD dwProcessId;
GetWindowThreadProcessId(hWnd, &dwProcessId);
HANDLE hProcess1 = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId);
方法2:
enableDebugPriv();
hResult = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hResult == INVALID_HANDLE_VALUE)
return (HANDLE)-1;
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(pe32);
DWORD dwPid = 0;
BOOL bMore = Process32FirstW(hResult,&pe32);
while(bMore)
{
if(wcscmp(pe32.szExeFile,cName) ==0)
{
dwPid = pe32.th32ProcessID;
break;
}
bMore = Process32Next(hResult,&pe32);
}
CloseHandle(hResult);
if(0!=dwPid)
{
hProcess2 = OpenProcess(PROCESS_ALL_ACCESS,false,dwPid);
}