c++ 使用api函数获取进程pid
时间: 2024-05-15 13:13:57 浏览: 150
获取制定进程名字的pid
使用Windows API函数获取进程PID可以使用`GetProcessId`函数。以下是一个示例代码:
```c++
#include <windows.h>
#include <iostream>
int main()
{
// 获取当前进程PID
DWORD pid = GetCurrentProcessId();
std::cout << "当前进程PID为:" << pid << std::endl;
// 获取指定进程PID(例如notepad.exe)
const wchar_t* processName = L"notepad.exe";
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
PROCESSENTRY32 pe32 = { 0 };
pe32.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(hSnapshot, &pe32)) {
while (Process32Next(hSnapshot, &pe32)) {
if (!_wcsicmp(pe32.szExeFile, processName)) {
std::cout << "找到进程 " << processName << ",PID为:" << pe32.th32ProcessID << std::endl;
break;
}
}
}
CloseHandle(hSnapshot);
return 0;
}
```
需要注意的是,获取指定进程PID需要枚举系统中所有进程并逐个比对,因此效率较低,如果需要频繁获取指定进程PID,可以考虑使用更高效的方法,例如使用WMI(Windows Management Instrumentation)。
阅读全文