Определение работающей программы в Windows - PullRequest
0 голосов
/ 27 марта 2012

У меня есть следующий сценарий, мне нужно обнаружить конкретную программу, работающую в Windows, прежде чем я смогу выполнить свою программу, например, моя программа должна знать, установлен ли LogMeIn и запущен ли он для продолжения, я использовал несколько подходов, таких как перечислениепроцессы, использующие psapi.dll, но я думаю, что имя процесса может измениться на этапе установки и настройки, поэтому я не знаю, как сделать так, чтобы я всегда мог найти процесс независимо от этого.Я использую некоторые тесты, основанные на следующих фрагментах кода: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682623(v=vs.85).aspx

Другой подход заключается в использовании кода реестра, но я обнаружил, что он также может быть изменен и не является стандартным.

1 Ответ

0 голосов
/ 27 марта 2012

Если программа, которую вы хотите отследить, является оконной (поэтому показывается окно), и заголовок окна - это то, что вы предсказываете. Вы можете использовать функцию EnumWindows . Если заголовок изменяется, но все равно есть несколько слов, которые одинаковы в разных сериях, вы можете использовать регулярное выражение, чтобы увидеть, соответствует ли имя тому, что вы хотите. Пример:

LogMeIn работает ...

2012-03-27: LogMeIn

Эти две строки имеют общее и явное имя, так что вы можете сказать, что это будет то, что вы ищете. Вы можете применить это обоснование к методу EnumProcess

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...