Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.06;
Скачать: CL | DM;

Вниз

Сервис   Найти похожие ветки 

 
Игорь Шевченко ©   (2006-07-17 17:20) [40]


> ThrTimer.FS := TFileStream.Create("c:\log.tmp",fmCreate
> or fmShareDenyWrite);


or fmShareDenyWrite - лишнее. fmCreate равен $FFFF


 
Пусик ©   (2006-07-17 17:27) [41]


> Игорь Шевченко ©   (17.07.06 17:20) [40]
> > ThrTimer.FS := TFileStream.Create("c:\log.tmp",fmCreate
> > or fmShareDenyWrite);or fmShareDenyWrite - лишнее. fmCreate
> равен $FFFF


Совершенно верно.

Но стоит ли этот совершенно никчемный пример, всего лишь демонстрирующий, как правильно организовать работу сервиса, используя готовый класс Delphi, разбиратть по косточкам?


 
Fay ©   (2006-07-17 17:30) [42]

2 Пусик ©   (17.07.06 17:14) [39]
> А прежде подумать, а потом говорить, тоже не судьба?
О чём это, таком умном, нужно было подумать?


 
Пусик ©   (2006-07-17 17:43) [43]


> Fay ©   (17.07.06 17:30) [42]
> 2 Пусик ©   (17.07.06 17:14) [39]> А прежде подумать, а
> потом говорить, тоже не судьба?О чём это, таком умном, нужно
> было подумать?


О вечном, непреходящем. А также см. [41].

Прежде, чем цепляться к пуговицам, подумай о цели и назначении предмета одежды.

Не надо цепляться и говорить, что на майке нет пуговиц (ничего себе - майка без пуговиц!), так как она не предназначена для того, чтобы к ней пуговицы нашивали. Разве что для людей с немного измененной психикой.


 
Игорь Шевченко ©   (2006-07-17 17:48) [44]

Пусик ©   (17.07.06 17:43) [43]

flame > /dev/null


 
Levin_610 ©   (2006-07-18 09:36) [45]

спасибо за помощь, я уже написал, всё получилось, спасибо


 
isasa ©   (2006-07-18 10:35) [46]

:)
ну вот, а ты боялся ...


 
isasa ©   (2006-07-18 10:38) [47]

Да.
Статью с rsdn почитай. Там про время откликов потоков сервиса -- очень актуальнай момент(не только для корректного завершения)


 
Levin_610 ©   (2006-07-18 12:24) [48]

правильно боялся, у меня почему-то, регистроваться-то регистрируется, и удаляется, но не запускается, если пытаюсь запустить, то пишет следующее: ошибка2: не удаётся найти указанный файл


 
isasa ©   (2006-07-18 13:06) [49]

А проверить, где зарегистрирован модуль службы и есть ли он там. :)

       SC_HANDLE schService = CreateService(
               schSCManager, // SCManager database
               srvName, // name of service
               srvDispName, // service name to display
               SERVICE_ALL_ACCESS, // desired access
               SERVICE_WIN32_OWN_PROCESS, // service type
               SERVICE_DEMAND_START, // start type
               SERVICE_ERROR_NORMAL, // error control type
               szPath, // path to service"s binary  <-- откуда взял?
               NULL, // no load ordering group
               NULL, // no tag identifier
               NULL, // no dependencies
               NULL, // LocalSystem account
               NULL); // no password


 
Levin_610 ©   (2006-07-18 14:06) [50]

szPath, // path to service"s binary  <-- откуда взял? - где-то прочситал, что так можно сделать) , а это неправильно?  кстати там я ошибся в адресе, правда тебперь при запуске не отвечает моя программа на запрос, но это уже другая история)


 
Levin_610 ©   (2006-07-18 14:21) [51]

я вообщем локализовал ошибку, она в ф-ции СервисСтарт, не у кого нет рабочей версии этой функции?) Странная вещь, когда я расскомментирую описания процедуры СервисСтарт,  у меня не может сервис зарегестрироваться, как такое может быть?


 
Levin_610 ©   (2006-07-18 15:07) [52]

теперь служба запускается, но дает ошибку сразу же, где можно искать ошибку: при приёме данных от SCM, что-то с потоком может быть не так? - конечно понимаю - глупо спрашивать, где в моём коде ошибка) , но мало ли у кого есть идеи. Но и всё же, если у кого есть servicestart и servicestop нормальные...пожалуйста)


 
Levin_610 ©   (2006-07-19 09:21) [53]

вопрос всё ещё в силе)


 
Levin_610 ©   (2006-07-19 12:30) [54]

у меня заходит сюда:   if not StartServiceCtrlDispatcher(DispatchTable[0]) then
   LogError("StartServiceCtrlDispatcher Error");
т.е. неправидьно выполняется StartServiceCtrlDispatcher, с чем это может быть связано?
помогите пожалуйста.


 
isasa ©   (2006-07-19 12:49) [55]

Levin_610 ©   (19.07.06 12:30) [54]
Перепиши приблизительно так, и почитай, что пишет

if not StartServiceCtrlDispatcher(DispatchTable[0]) then begin
  ErrCode:=GetLastError();
  LogError(
               "StartServiceCtrlDispatcher Error "+
               format("%d(%x) %s", [ErrCode, ErrCode, SysErrorMessage(ErrCode)])
             );
end;


 
Levin_610 ©   (2006-07-19 13:55) [56]

хорошо, спасибо, ща попробую.


 
Levin_610 ©   (2006-07-19 14:20) [57]

после того, как я ввёл этот код - он вывел следующее на экран:
StartServiceCtrlDispatcher Error 1063<427> - а дальше набор символов на непонятном языке


 
isasa ©   (2006-07-19 15:10) [58]

:)
Ну а так

if not StartServiceCtrlDispatcher(DispatchTable[0]) then begin
 ErrCode:=GetLastError();
 MessageBox(0,
   PChar("StartServiceCtrlDispatcher Error "+format("%d(%x) %s", [ErrCode, ErrCode, SysErrorMessage(ErrCode)])),
   "Start Service Error ",
   MB_OK or MB_ICONERROR or MB_SERVICE_NOTIFICATION);
end;


Кодировка?
Винда русская, небось от 2000 или ХР, т.е. консоль - юникод, в файл пишем как со всеми вытекающими.
Кстати, дома на русской тоже надо потренироваться.


 
isasa ©   (2006-07-19 15:16) [59]

:)
Должно так(на англ.)
StartServiceCtrlDispatcher Error 1063(427) The service process could not connect to the service controller

Криво расставил точки входа.

DispatchTable[0].lpServiceName:=<ServiceName>;
DispatchTable[0].lpServiceProc:=@ServiceProc;

DispatchTable[1].lpServiceName:=nil;
DispatchTable[1].lpServiceProc:=nil;


 
Levin_610 ©   (2006-07-19 15:22) [60]

пишет, что одна копия службы уже запущена, но я удалил тогда службу эту, он всё равно пишет тоже самое


 
Levin_610 ©   (2006-07-19 15:24) [61]

DispatchTable[0].lpServiceName:=ServiceName;
DispatchTable[0].lpServiceProc:=@ServiceProc;

DispatchTable[1].lpServiceName:=nil;
DispatchTable[1].lpServiceProc:=nil;
У меня вот так вот, но ServiceName = "ServiceName"


 
isasa ©   (2006-07-19 15:37) [62]

Ctrl+Shift+Esc - закладка Processes, ищем, удаляем.
Зарегистрировать, запустить, остановить, приостановить, восстановить, удалить (Register, Start, Stop, Pause, Resume, Unregister) - разные действия.
Надо читать первоисточники.
Так не пойдет - сумбур. :)


 
Levin_610 ©   (2006-07-19 16:13) [63]

у меня нет его в процессах


 
Levin_610 ©   (2006-07-19 16:21) [64]

я нашёл в чем там глюк был, теперь он другое пишет:
"Процесс службы не может установить связь с контроллером службы"


 
Levin_610 ©   (2006-07-20 09:01) [65]

Как написать СервисКонтроллер, чтобы всё действовало?


 
Fay ©   (2006-07-20 09:45) [66]

http://www.booka.ru/booka_topic_5114?id=17892


 
Levin_610 ©   (2006-07-20 09:52) [67]

спасибо конечно, но я бедный стцдент до зарплаты, а зарплату я не получу, если не сделаю программу - замкнутый круг получается), по
тому я спрошу, если кто захочет ответит:
почему-то если запускать прогу через прописания /install, то потом связь устанавливается видимо, во всяком случае служба запускается, но мне нужно, чтобы служба автоматически устанавливалась, у меня это прописано, но тогда появляется вышеупомянутая ошибка, это значит, что что-то не совсем правильно в CreatNTService?


 
Levin_610 ©   (2006-07-20 15:49) [68]

вопросы всё ещё в силе, про СервиКонтрол и последний, буду благодарен за помощь



Страницы: 1 2 вся ветка

Текущий архив: 2006.08.06;
Скачать: CL | DM;

Наверх




Память: 0.6 MB
Время: 0.076 c
6-1143141281
Суслик
2006-03-23 22:14
2006.08.06
Просмотр HTTP трафика.


6-1143130382
RusGl
2006-03-23 19:13
2006.08.06
idHTTP, SSL и Connection Closed Gracefully


9-1131132680
GGG
2005-11-04 22:31
2006.08.06
DelphIX Как сделать чтоб для каждого спрайта была своя процедура?


3-1148966505
WG
2006-05-30 09:21
2006.08.06
SQL выборка из таблицы с датами последнего изменения


1-1150981906
Михаил2
2006-06-22 17:11
2006.08.06
При запуске компилятора появляется только форма