Как программно установить службу в windows?
Вложений: 1
Накатал такой вот проект - http://zalil.ru/31009630 (или во вложении)
Как правильно создавать новую службу в 7ке (в 2k и XP работает) , а то не хочет устанавливаться и все тут (даже с админскими правами - помагает только предварительная установка для exe-шника совместимости с WinXP) ? PS код проекта (запускается как приложение или как служба, если с запускать с ключом -INSTALL, но только в 2k и XP, в 7ке не хотит служба устанавливаться): Код:
program TestService; На DataModule1 лежит TrayIcon и контекстное меню для него, вызывающее AboutForm1 и завершающее приложение. |
А при попытке ручной инсталляции какая-нить ошибка вылезает?
Системный журнал смотрел? ИМХО, никаких иконок в трее в службах быть не должно - правильная служба не должна сама общаться ни с рабочим столом, ни с панелью задач. |
Начиная с Vista запрещено взимодействие служб с рабочим столом. Поэтому - все формы нафиг.
|
Форма в приложении нужна - она будет использоваться приложением, которое будет подключаться к службе.
Просто не хочется таскать лишние файлы - сделал приложение/служба в одной упаковке. При ручной регистрации службы ошибок нет. Разве что требуется установка для exe-шника режима совместимости с XP для инсталляции ключом /install. При использовании утилиты sc, из консоли, вообще все в порядке. И все же как установить службу программно? Т.е. запустил приложение (которое приложение-служба), нажал в нем кнопку - служба установилась (зарегилась и запустилась), после перезапуска приложения увидели что служба есть и работает - подключились к ней (с этого приложения или по сети - через DataSnap). Взаимодействие через DataSnap уже есть - осталось дело за малым: программно установить службу под Vista/7 что бы не требовался предварительный вход в систему и запуск приложения-сервера. PS Хотя бы подскажите как запустить дочерний процесс с правами администратора (что бы всплыл обычный виндовый запрос запуска с правами админа) и параметрами командной строки? |
Так нашел MSDN - Redesign for UAC Compatibility (UAC)
Написал функцию Код:
function RunAsAdmin(HWND: hWnd; lpFile,lpParameters: String): Boolean; |
Цитата:
Правда, прятать сообщение не советую - если будет неудача у клиента, будешь долго разбираться что к чему. |
Спасибо))
Ну я после попятки установки проверяю зарегистрирована ли служба, если нет, то прошу зайти под админом и запустить программу ещё раз - она проверит наличие службы и попытается ещё раз установить. Пока так, а там видно будет... Последний вопрос по службам: Зависимости от каких служб нужно поставить что бы уже была доступна сеть, конкретно TCP/IP - для работы DataSnap нужен... |
Время: 00:52. |
Время: 00:52.
© OSzone.net 2001-