我有以下场景,我需要在执行程序之前检测一个在Windows中运行的特定程序,例如我的程序需要知道LogMeIn是否实际安装并运行才能继续,我已经使用了一些方法,如枚举使用psapi.dll的进程,但我认为进程名称可能会在安装和配置阶段发生变化,所以我不知道如何确保我可以独立于此找到进程。我正在使用基于以下代码段的一些测试:http://msdn.microsoft.com/en-us/library/windows/desktop/ms682623(v=vs.85).aspx
另一种方法是使用注册表代码,但我发现它也可以被修改而且不是标准的。
答案 0 :(得分:0)
如果要跟踪的程序是窗口化的(因此显示了一个窗口),窗口标题就是您预测的内容。您可以使用EnumWindows功能。如果标题发生了变化,但在不同的运行中仍然有一些相同的单词,则可以使用正则表达式来查看名称是否与您想要的名称相匹配。 例如:
LogMeIn正在运行......
2012-03-27:LogMeIn
这两个字符串共享一个通用和显式名称,因此您可以告诉它将是您要查找的内容。 您可以将此推理应用于EnumProcess方法