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