Друзья, всем привет!
Проблему решил созданием bat-файла и запуском его как службы. Работает без нареканий.
Сервис из любого файла можно сделать с помощью программ instsrv.exe и srvany.exe из Windows Resource Kit.
Многочисленные статьи ищутся по запросам:
"Запуск программы Windows как службы"
"запуск bat как службы"
или
Создание определяемой пользователем службы
.
По поводу паузы в bat-файле (в WinXP, в отличие от старших версий ОС нет команды sleep).
Первая версия через ping - мне не понравилась, грузит процессор в фоне.
bat-файл (пауза через ping)
[spoiler]Код:
[/spoiler]
Код: Выделить всё
:start
sc query SharedAccess > state.txt
find "STOPPED" state.txt
if %errorlevel% EQU 0 goto error
ping -n 60 127.0.0.1 >nul
goto start
:error
sc config SharedAccess start= "auto"
ping -n 5 127.0.0.1 >nul
sc start SharedAccess
ping -n 5 127.0.0.1 >nul
goto start
Вот финальная версия.
Программа sleep.exe из пакета
unxutils
лежит в system32
bat-файла (пауза через sleep)
[spoiler]Код:
[/spoiler]
Код: Выделить всё
:start
sc query SharedAccess > state.txt
find "STOPPED" state.txt
if %errorlevel% EQU 0 goto error
sleep 60
goto start
:error
sc config SharedAccess start= "auto"
sleep 5
sc start SharedAccess
sleep 5
goto start
Файлы (4 шт): chk-service-status.bat, instsrv.exe, srvany.exe и state.txt лежат в папке \system32\chk-service-status.
Благодарю всех за помощь и советы.