Показать сообщение отдельно
(#19)
Старый 18.12.2006

Думаю - самый правильный подход - сделать программу службой сделать это не так трудно, как считается, для этого необходимо скачать определенный пакет утилит, называемый srvany. пакет состоит из двух утилит INSTSRV.EXE и SRVANY.EXE. И приложен к посту.
Для начала необходимо скопировать эти файлы в системную директорию %windir%/system32. Затем
необходимо запустить файл SRVANY.EXE из командной строки, используя следующий синтаксис: "Instsrv
ServiceName %windir%\srvany.exe", Где ServiceName - придуманное имя сервиса. Если всё сделано
правильно, то появится сообщение, подтверждающее успешное создание сервиса (The service was
successfuly added).

Теперь зайдите в Администрирование - Службы (Services). Находите только что созданную службу,
двойной клик вызывает свойства сервиса. На первой вкладке можно выбрать параметры запуска - Automatic
(автоматически при загрузке компьютера), Manual (Вручную) и Disabled (отключено). Для работы
созданного сервиса в отдельном окне необходимо отметить на второй вкладке (Вход в систему) пункт
Allow Service to Interact with Desktop (Разрешить взаимодействие с рабочим столом). Пока всё.

Следующим шагом является редактирование реестра. Запускаем редактор реестра Regedit. (Если не
знаете, как прочитайте здесь). Шагаем к ветви HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\ и
находим имя сервиса здесь. Создаем раздел "Parameters" (без кавычек) и в этом разделе прописываем
путь к программе, которую мы хотим запустить, следующим образом: Строковой параметр: "Application"
значение - путь к программе (c:\ file.exe). ВСЁ. Ниже представлен отрывок из экспортированного файла
моего сервиса (Apox), который автоматически запускает одну из серий Масяни.


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\apox]
"Type"=dword:00000110
"Start"=dword:00000004
"ErrorControl"=dword:00000001
"ImagePath"=hex(2):63,00,3a,00,5c,00,77,00,69,00,6 e,00,64,00,6f,00,77,00,73,00,\
5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32 ,00,5c,00,73,00,72,00,76,\
00,61,00,6e,00,79,00,2e,00,65,00,78,00,65,00,00,00
"DisplayName"="apox"
"ObjectName"="LocalSystem"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\apox\parameters]
"Application"="C:\masyana.exe"

Запустить сервис, если он не отключен, можно несколькими способами, во-первых через командную
строку: Net Start ServiceName - где SеrviceName - имя Вашего сервиса. И другим способом -
непосредственно через апплет административной панели - службы.

Хорошо, сервис установлен, запущен, а как же его удалить ведь стандартным Delete не обойдешься.
Сначала сервис необходимо остановить: net stop ServiceName, затем опять же в коммандной строке
выполняем команду INSTSRV MyService remove.


После пары ошибок (не уследил за ковычками ) у менязаработла в бэкграунде программа, которая очень тяжело хотела так работать, в моём случаем мне нужно было создавать бэкапы БД на сервере без логона пользователя - всё прошло.


P.S. упс - не посмотрел на дату до предыдущего поста, который я удалил как не имеющий смысла разговор то оказывается давний, но может всё равно кому пригодится.
Mike Mike вне форума
Обосновался
Mike Первый уровень
 
Регистрация: 08.06.2006
Сообщений: 257 шт.
Карма: 87 бал.
Ответить с цитированием