【问题标题】:query/find launching process windows [duplicate]查询/查找启动进程窗口[重复]
【发布时间】:2017-04-28 08:39:28
【问题描述】:

6 票赞成评论告诉我它不是重复的。 尽管没有人阅读实际问题,但仍以 4 票结束。 不接受任何答案。

我找到了一个解释的链接。

https://hackernoon.com/the-decline-of-stack-overflow-7cb69faa575d#.d05jjnucn

这么久了,帐户关闭。

【问题讨论】:

  • 它不是重复的。我不需要 pid,我不在乎它是否被回收。我只想要图像名称。
  • 好的。所以使用stackoverflow.com/questions/185254/…中描述的技术来获取父进程PID。然后调用OpenProcess()获取进程句柄,调用句柄QueryFullProcessImageName()获取图像文件名。

标签: c++ windows operating-system


【解决方案1】:

使用https://stackoverflow.com/a/3137081/6172310 中的技术获取父进程的进程 ID (pid)。

调用OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, false, pid)获取进程句柄(完成后别忘了关闭句柄!)

调用QueryFullProcessImageName(processHandle, 0, outputString, sizeof(outputString))获取图片名称。

【讨论】:

  • 您试图将此解决方案满足我的要求,这不是我要的。我将把问题编辑得更清楚。
【解决方案2】:

假设您知道进程名称,

您可以使用EnumProcesses() 来获取所有进程的列表,

然后GetModuleBaseName()检查每个进程的名称(您需要在此之前使用OpenProcess()打开它们)

当你找到合适的时候:QueryFullProcessImageName() 使用 EnumProcesses() 给出的 ID

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-09
  • 2022-10-18
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
相关资源
最近更新 更多