Я пытался определить, запущен ли на компьютере process A
, который я установил. Process A
требует прав администратора, устанавливается в C:\ProgramData
и обычно запускается как служба. На компьютере есть много процессов с именем A
. Чтобы выяснить, если это мой процесс, я проверил путь к исполняемому файлу.
Вы можете сделать это с process.MainModule.FileName
или более сложной настройкой, которая описана в этом вопросе
К сожалению, вы не можете проверить путь к исполняемому файлу, запущенному от имени администратора, не имея прав администратора.
Есть ли другой способ определить, действительно ли процесс с именем A
является тем, который вы ищете? Что еще можно проверить, кроме пути к исполняемому файлу? Какой обходной путь вы рекомендуете?
ОБНОВЛЕНИЕ:
Я неверно истолковал наблюдения. Если процесс запускается как служба, он запускается как пользователь SYSTEM
. Из-за этого вы не можете определить путь к исполняемому файлу, если у вас нет прав администратора.