gpt4 book ai didi

c - Linux 中 "pidof"的 Windows 等价物是什么?

转载 作者:可可西里 更新时间:2023-11-01 14:43:10 26 4
gpt4 key购买 nike

在批处理脚本中,我需要获取具有给定二进制路径 C:\path\to\binary.exe 的进程 ID 列表。在 Linux 中,我可以只执行 pidof/path/to/binary

是否有从 WinXP Home 到 Win7 都支持的 Win32 可执行文件(任务列表不起作用)?

包含这个的包必须是可移植的,所以 10MB 的下载不是我想要的。

从 WinXP 到 Win7 是否有支持此的 C 函数?注意:我想匹配进程路径,而不是其他应用程序也可以使用的文件名。

最佳答案

wmic.exe 在 XP、Vista 和 7 上可用,可以执行此操作。但是,它不随 Windows XP 家庭版一起提供。

wmic process where ExecutablePath='C:\\windows\\system32\\notepad.exe' get ProcessId

如果你也想支持 Windows XP Home,你可以使用 EnumProcessGetModuleFileNameEx .这里的缺点是,如果您不是以管理员身份运行,您将无法查询其他用户运行的进程的名称。 QueryFullProcessImageName在这里可能会成功,但它是 Vista+。

如果这还不够,您还需要 Process32First (swatkat 的代码)。对于每个过程,您需要调用 Module32First然后获取 MODULEENTRY32->szExePath。请注意,即使这样也不是完全可移植的,并且在您需要 QueryFullProcessImageName 的 x64 上也无法正常工作。 .

关于c - Linux 中 "pidof"的 Windows 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4176931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com