如何在不枚举进程的情况下,通过c++从进程id中获取进程名
How to get Process name from process id in windows through C++ without enumerating process?
我需要从windows中的进程id中获取进程名称,以查找与已记录事件相关的进程名称。它只能从记录的事件中获取执行进程id。进程句柄是使用GetProcessImageFileName()
方法所需的输入。无法从记录的事件中获取进程句柄。
在重复的问题中,它谈论当前正在运行的进程。但是我不需要当前正在运行的进程,因为它谈论记录的事件。,我对processID vs processName组合是否在Windows中是唯一的有疑问。所以也要考虑一下……
我期望一定有一些结构将进程id映射到进程名。有这样的结构吗?或者有其他方法从进程id获取进程映像名称吗?
我需要从windows中的进程id中获取进程名,以查找与日志事件相关的进程名。
如果您从日志中获取进程ID,则只有在原始进程仍在运行时才有效。否则,该ID对该进程名不再有效。如果进程在您读取日志之前已经退出,那么所有的赌注都将被取消。
我不需要当前正在运行的进程,因为它谈论记录的事件。
如果原始进程名没有被记录,那么你就不走运了。
我对processID vs processName组合是否在Windows中是唯一的有疑问。
进程ID仅在用于运行中的进程时是唯一的。一旦进程结束,它的进程ID就不再有效,可以在后续的新进程中重用。
我期望一定有一些结构将进程id映射到进程名。
可以,但只适用于正在运行的进程。可以将进程号传递给OpenProcess()
。如果成功,它将返回一个HANDLE
给正在运行的进程。然后,您可以将HANDLE
传递给GetModuleFileName()
, GetProcessImageFileName()
或QueryFullProcessImageName()
,这取决于操作系统版本和您能够从OpenProcess()
获得的权限。
- boost::进程间消息队列引发错误
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 是否可以通过C++扩展强制多个python进程共享同一内存
- IPC使用多个管道和分支进程来运行Python程序
- 异常属于C++中的线程还是进程
- WMI检测进程创建事件-c++
- c++多进程编写一个唯一的文件
- 如何在C++中将函数发送到另一个进程
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 终止 QProcess 不会终止子进程
- 将返回值从 exe 传递到 bat,并将其传递给 C# 中的进程
- COM :是否可以查看是否存在对我的某个 COM 对象的进程外引用?我可以释放它吗?
- Windows 进程间同步类似事件?
- 在挂钩启动新线程时解除挂钩进程
- pclose() 不会给我进程退出代码
- 运行代码时,c++ 会终止进程
- 可以读入进程内存的最大块大小是多少?
- 枚举进程模块在有效句柄上返回无效句柄
- 如何读取特定地址的进程内存?
- 如何从另一个进程解开全局钩子?