C++ 获取当前任务管理器中的进程信息
时间: 2024-12-10 14:51:24 浏览: 23
在C++中获取当前任务管理器中的进程信息通常不是直接内置的功能,因为标准库并没有提供这样的接口。不过你可以通过操作系统提供的API或者第三方库来间接实现这个功能。如果你是在Windows平台上,可以考虑使用`psapi.h`头文件中的函数,如`EnumProcesses()`、`GetModuleBaseName()`等来查询进程信息。
例如,使用`CreateToolhelp32Snapshot()`创建进程快照,然后遍历其中的过程,获取进程ID、名称等信息:
```cpp
#include <windows.h>
#include <tchar.h>
#include <psapi.h>
void GetProcessInfo() {
PROCESSENTRY32 pe32 = {0};
pe32.dwSize = sizeof(PROCESSENTRY32);
HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnap == INVALID_HANDLE_VALUE) {
// 处理错误
return;
}
while (Process32First(hSnap, &pe32)) {
TCHAR szBuf[MAX_PATH] = {0};
DWORD len = GetModuleFileName((HMODULE)pe32.th32ProcessID, szBuf, MAX_PATH);
if (len > 0 && len < MAX_PATH) {
_tprintf(_T("PID: %d, Process Name: %s, Module File: %s\n"),
pe32.th32ProcessID, pe32.szExeFile, szBuf);
}
else {
_tprintf(_T("Failed to get module name for PID: %d\n"), pe32.th32ProcessID);
}
}
CloseHandle(hSnap);
}
阅读全文