Можно ли запустить скрытое консольное приложение из службы Windows? - PullRequest
2 голосов
/ 31 мая 2010

Я написал сервер в Delphi 2010, который время от времени должен запускать консольное приложение для резервного копирования базы данных. Консольное приложение может отправлять информацию журнала в окно консоли, но это не обязательно.

Это прекрасно работает при запуске в качестве приложения, но при запуске в качестве службы при запуске консольного приложения возникает нарушение прав доступа. Это имеет место, даже если я запускаю его скрытым (SW_HIDE).

Можно ли запустить скрытое консольное приложение из службы Windows? Решение должно работать на XP, Vista и Windows 7.

РЕДАКТИРОВАТЬ: нарушение прав доступа происходит, когда я вызываю ShellExecute.

1 Ответ

5 голосов
/ 31 мая 2010

Если вы используете ShellExecute, то не надо: это не будет работать внутри службы и почти никогда не будет лучшим способом запустить процесс.

Используйте CreateProcess вместо.

См. Эту группу потоков вопросов ShellExecute / CreateProcess в stackoverflow .

- Йерун

...