从进程 id (win32) 中获取进程名称 [英] get process name from process id (win32)
本文介绍了从进程 id (win32) 中获取进程名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要获取 Windows 系统上所有进程的列表,包括名称和 PID.
EnumProcess 可以获得pid列表,但如何从 pid 中获取进程名称?我不想在进程上调用 OpenProcess,因为这并不总是有效(就像另一个进程由不同的用户运行一样).
I need to get a list of all processes on a windows system including names and PID.
EnumProcess can obtain a list of pids, but how do I get the process name from the pid? I don't want to call OpenProcess on the process as that doesn't always work (like if the other process is run by a different user).
推荐答案
Ýou 可以使用 工具帮助 API.
以下代码将显示每个进程的 pid
和 name
.
Ýou can get the process identifier and name
for all running processes using the ToolHelp API.
The following code will display the pid
and name
for each process.
void showProcessInformation() {
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hSnapshot) {
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(PROCESSENTRY32);
if(Process32First(hSnapshot, &pe32)) {
do {
printf("pid %d %s
", pe32.th32ProcessID, pe32.szExeFile);
} while(Process32Next(hSnapshot, &pe32));
}
CloseHandle(hSnapshot);
}
}
这篇关于从进程 id (win32) 中获取进程名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文