下面的示例是我要获取我的电脑中,360tray.exe这个程序的HANDLE,下面的写法有点像java的迭代器iterator
#include <iostream>
#include <string.h>
#include <Windows.h>
#include <tlhelp32.h>
int main() {
PROCESSENTRY32 process_msg;
process_msg.dwSize = sizeof(process_msg);
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS , 0);
BOOL firstProcess = Process32First(snapshot, &process_msg);
while (firstProcess) {
WCHAR* szExeFile= process_msg.szExeFile;
// std::wcout << szExeFile <<"----"<< process_msg.th32ProcessID << std::endl;// 可执行文件名
firstProcess = Process32Next(snapshot, &process_msg);
// 要获取的可执行文件名
wchar_t myProcess[] = L"360tray.exe";
int equ=strcmp((char*)myProcess, (char*)szExeFile);
if (equ == 0) {
std::cout << process_msg.th32ProcessID << std::endl;
HANDLE handler = OpenProcess(PROCESS_ALL_ACCESS, FALSE, process_msg.th32ProcessID);
// 程序至此就已经获取到了360tray.exe这个程序的HANDLE
}
}
return 0;
}