Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
Игорь Шевченко ©   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.59 MB
Время: 0.011 c
2-1153302482
IceBeerg
2006-07-19 13:48
2006.08.06
Передача данных из одной программы в другую через указатели


15-1152450316
анка
2006-07-09 17:05
2006.08.06
Стоит ли ехать в Питер во время Саммита?


2-1153396795
RobinBad
2006-07-20 15:59
2006.08.06
Чтение из файла по строкам


15-1151396003
Nous Mellon_
2006-06-27 12:13
2006.08.06
О летнем отдыхе


15-1152657553
Alx_
2006-07-12 02:39
2006.08.06
The security log on this system is full





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский