2008-11-18 2 views
2

Как найти местоположение exe, которое работает как служба Windows во время выполнения?Как найти местоположение exe, которое работает как служба Windows во время выполнения?

+0

Не могли бы вы добавить более подробную информацию о том, что вы пытаетесь сделать. Вы спрашиваете, как исполняемый файл может программно определить его путь запуска? – RoadWarrior 2008-11-18 14:54:29

+0

Кроме того, если вы хотите, чтобы это было сделано программно, какой язык программирования вы используете? – 2008-11-18 15:55:53

ответ

2

.NET - Assembly.GetExecutingAssembly().Location (другие предложили Application.ExecutablePath, но это требует ссылки на System.Windows.Forms, что служба обычно не нужно)

Native - GetModuleFileName(NULL, ...)

0

Если ваш исполняемый файл привязывается к конкретному порту можно разобрать выход из

netstat -ab 

, вероятно, не самое привлекательное решение, хотя.

1

Если это .NET, вы хотите, чтобы Application.ExecutablePath (если вы пытаетесь получить собственный путь приложения к службе запуска Windows). Если вы пытаетесь найти путь к другому запущенному сервису Windows, это совсем другая история.

-3

Обычно они работают под Windows \ system32, даже если вы, возможно, installled его на другом диске

4

программным или с помощью инструмента?

В последнем случае я рекомендую использовать Sysinternals Process Explorer: он показывает все запущенные процессы, включая службы, и одно из полей - это командная строка, используемая для запуска процесса, включая полный путь.

Их утилита командной строки, PsService, может быть полезна.

10

Используйте реестр:

например.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\' + ServiceDisplayName; 

затем прочитайте ImagePath значение.

0

Если вы не используете .NET, самым прямым способом является использование функции Win32 ::QueryServiceConfig(). Это даст вам имя пути, отображаемое имя и всякую другую информацию об услуге.

0

Для родного кода Windows: GetModuleFileName (NULL ...) в EXE (не в DLL, загруженной службой, например).

 Смежные вопросы

  • Нет связанных вопросов^_^