C++代码无痕读取应用进程pid
时间: 2023-12-06 20:39:48 浏览: 36
要读取应用进程的pid,可以使用C++中的Windows API函数`CreateToolhelp32Snapshot`和`Process32First`,具体代码如下:
```c++
#include <windows.h>
#include <tlhelp32.h>
DWORD GetProcessIdByName(const char* processName) {
PROCESSENTRY32 processInfo;
processInfo.dwSize = sizeof(processInfo);
HANDLE processesSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if (processesSnapshot == INVALID_HANDLE_VALUE) {
return 0;
}
DWORD processId = 0;
if (Process32First(processesSnapshot, &processInfo)) {
do {
if (_stricmp(processInfo.szExeFile, processName) == 0) {
processId = processInfo.th32ProcessID;
break;
}
} while (Process32Next(processesSnapshot, &processInfo));
}
CloseHandle(processesSnapshot);
return processId;
}
```
其中,`processName`为需要读取pid的应用的名称,比如"notepad.exe"。函数返回值为应用的pid,如果没有找到该应用进程,则返回0。