![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Проблема заключается в следующем. В папке D:\Program Files (x86) находились программы со службами всё работало отлично до определённого момента после которого службы лежащие в нижестоящих папках перестали запускаться. При попытке запуска через net start 'ServiceName' появляется сообщение Служба не отвечает на управляющие функции NET HELPMSG 2186. Удаление и повторная установка служб ни чего не даёт. При переносе нижестоящих папок в любое другое местоположение службы запускаются. Пробовал удалять данную папку и создавать её снова но результат остался тем же. Есть у кого нибудь какие либо идеи по данному вопросу?
|
|
#2
|
|||
|
|||
|
Проблема решилась следующим образом.
Код:
procedure TTestService.ServiceAfterInstall(Sender: TService);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('\SYSTEM\CurrentControlSet\Services\TestService', False);
Reg.WriteString('ImagePath', '"' + ParamStr(0) + '"');
finally
Reg.Free;
end;
end;http://www.sources.ru/msdn/library/createservice.shtml lpBinaryPathName Указатель на строку (заканчивающуюся нулём), которая содержит полный путь к исполняемому файлу сервиса. Если путь содержит пробелы, то он должен быть заключён в кавычки. Например, "d:\\my share\\myservice.exe" необходимо указать как "\"d:\\my share\\myservice.exe\"". Путь так же может содержать аргументы для автоматически-запускаемого сервиса. Например, "d:\\myshare\\myservice.exe arg1 arg2". Эти параметры передаются в точку входа сервиса (обычно в функцию main). Судя по всему винда обновилась и по каким то причинам даже если в пути нет пробелов его надо заключать в двойные кавычки. Теперь всё работает. Последний раз редактировалось lmikle, 12.10.2015 в 18:30. |
|
#3
|
|||
|
|||
|
А русских буквиц в пути случаем нет?
|
|
#4
|
|||
|
|||
|
Нет ни одной, но без двойных кавычек не работает.
![]() |