与C++ Windows - How to get process path from its PID类似,但相反:如何从给定路径获取pid?
我正在尝试编写一个更新工具,我想看看是否正在使用该exe . 然后如果它正在使用中,我想等待进程退出 . 因此,我想获得属于该文件的进程PID .
与C++ Windows - How to get process path from its PID类似,但相反:如何从给定路径获取pid?
我正在尝试编写一个更新工具,我想看看是否正在使用该exe . 然后如果它正在使用中,我想等待进程退出 . 因此,我想获得属于该文件的进程PID .
1 回答
这是一个快速简单的方法来做你想要的 . 通过使用QueryFullProcessImageName,您可以快速检查 .
可能导致以下代码无法按预期工作的事情:
如果您没有查看进程的权限,您将无法看到该信息 .
如果进程为64位且您将应用程序作为32位运行,您将看到进程ID,但无法打开进程ID .
例:
然后,您将使用以下简单的内容来测试它:
以上回答了您的间接问题 . 要回答您的文字问题,您可以更改IsProcessInUse,如下所示:
最后要注意的一件事是,这只会返回一个文件的单个实例(或PID),而且这不会查找进程使用的模块(因此进程使用的任何DLL都不会被识别,但是,从您提供的链接,您可以看到利用它来获得该级别功能的方法 .