Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сервисы под XP

18K
17 февраля 2009 года
Gurt
14 / / 08.01.2007
Помогите написать свой простой сервис под XP...
302
17 февраля 2009 года
Sagittarius
648 / / 12.04.2003
А в чем проблема? Создай с помощью мастера Service Application. :)
Какие конкретно вопросы интересуют?
18K
18 февраля 2009 года
Gurt
14 / / 08.01.2007
Цитата: Sagittarius
А в чем проблема? Создай с помощью мастера Service Application. :)
Какие конкретно вопросы интересуют?



А как его запустить? Он создается...устанавливается...а как скажим зделать так что б задачей сервиса было вывод на экран сообщения и все...???

Вот код созданый с помощью мастера

Цитата:


unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs,Registry;
type
TService1 = class(TService)
private
{ Private declarations }
public
function GetServiceController: TServiceController; override;
{ Public declarations }
end;

var
Service1: TService1;

implementation

{$R *.DFM}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
Service1.Controller(CtrlCode);
end;

function TService1.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;



что в него добавить?????

355
18 февраля 2009 года
<SCORP>
786 / / 21.10.2006
http://www.devarticles.com/c/a/Delphi-Kylix/Creating-a-Windows-Service-in-Delphi/
блин, ну никакой же секретной инфы в этом нет! ну йопт, ну пользуйтесь же поисковиками - для кого их делают??
302
18 февраля 2009 года
Sagittarius
648 / / 12.04.2003
Добавлять туда надо код. Прежде чем писать сервис, его надо спроектировать.

В какой момент должна надпись появиться? Предположим, что при запуске сервиса, тогда:
1. сервису необходимо разрешить взаимодействие с рабочим столом (свойство Interactive=True);
2. в обработчике ServiceStart пишем ShowMessage('Я запустился');

Вот только смысла в таком сервисе нет.
16K
18 февраля 2009 года
medved_68
36 / / 06.07.2006
Цитата: Gurt
Помогите написать свой простой сервис под XP...

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1348 Все очень подробно расписано, по шагам. Чтоже касается вывода на десктоп залогиненого пользователя - нужно создавать интерактивный сервис - а это тот еще "глюк". ИМХО - проще написать приложение для взаимодействия с определенным (своим) сервисом через SCM. Как вариант - приложение открывает сервис с необходимым флагом доступа. Далее отправка через диспетчер управляющего пользовательского кода из области 128-255, получив который, сервис активизирует (к примеру) именованный пайп и дальнейшее взаимодействие (получение данных от сервиса и т.д.) идет через него. :)

5
18 февраля 2009 года
hardcase
4.5K / / 09.08.2005
Цитата: medved_68
Как вариант - приложение открывает сервис с необходимым флагом доступа. Далее отправка через диспетчер управляющего пользовательского кода из области 128-255, получив который, сервис активизирует (к примеру) именованный пайп и дальнейшее взаимодействие (получение данных от сервиса и т.д.) идет через него. :)


С таким же успехом можно и через TCP/IP организовать взаимодействие. Таким образом мы "отвязываем" серверное приложение (сервис) от необходимости работать исключительно как сервис.

303
18 февраля 2009 года
makbeth
1.0K / / 25.11.2004
ИМХО, создавать проект с сервисом надо в последнюю очередь. Сначала нужно создать само сервисное приложение, но с хостом в виде обычного приложения (к примеру, консольного). А уж потом, отладив его как следует и выловив все глюки, надо реализовать его в виде сервиса, ибо отладка сервиса - гемор еще тот :)
355
18 февраля 2009 года
<SCORP>
786 / / 21.10.2006
ну.... не знаю, вообще, как в дельфе, но в мракософтовой студии особого геморра нету - берёшь и дебажишь. в делфи, по-моему, тоже есть attach to process
16K
18 февраля 2009 года
medved_68
36 / / 06.07.2006
Цитата: hardcase
С таким же успехом можно и через TCP/IP организовать взаимодействие. Таким образом мы "отвязываем" серверное приложение (сервис) от необходимости работать исключительно как сервис.

Почему? К примеру - биллинг офисной миниАТС. Две компоненты - сам сервис, который стартует вместе со стартом системы (его задача - ловить все, что пришлет АТС) и сама программа биллинга, которую запускает пользователь (со всеми "наворотами", вплоть до "уровня безопасности"). Пока программа не запущена, сервис спокойно складирует данные от АТС, как только программа запустилась и дала пинок сервису - данные начинают передаваться непосредственно на биллинг и далее ложиться в базу. Если же сброс питания (погас комп, АТС), затем подъем (АТС и комп стартовали) - данные не будут потеряны, сервис об этом позаботится. А там (когда то) и человек залогинится и запустит биллинг. И в чем "отвязка"??? :)

303
19 февраля 2009 года
makbeth
1.0K / / 25.11.2004
<SCORP>, что легче - запустить прогу сразу в режиме отладки, или каждый раз запускать сервис и аттачится к его процессу? Кроме того, если сервис достаточно долго не отвечает на запросы SCM, винда его может и грохнуть :) (хотя, как там при отладке бывает...)
medved_68, при схеме работы сервиса с правляющей программой с помощью TCP/IP мы можем вообще запускать сервис на отдельном серваке, а программу биллинга совершенно на другом.. Правда можно сервисами рулить и с удаленного компа, но я думаю, лучше всетаки TCP/IP.
16K
26 февраля 2009 года
medved_68
36 / / 06.07.2006
Цитата: makbeth
<SCORP>, что легче - запустить прогу сразу в режиме отладки, или каждый раз запускать сервис и аттачится к его процессу? Кроме того, если сервис достаточно долго не отвечает на запросы SCM, винда его может и грохнуть :) (хотя, как там при отладке бывает...)
medved_68, при схеме работы сервиса с правляющей программой с помощью TCP/IP мы можем вообще запускать сервис на отдельном серваке, а программу биллинга совершенно на другом.. Правда можно сервисами рулить и с удаленного компа, но я думаю, лучше всетаки TCP/IP.

Ну здесь было "здравое изречение" про отладку в режиме приложения и дальнейший перенос в сервис. Согласен - так гораздо проще, чем аттач к процессу. А для того, чтобы Винда его не грохнула - потоки, а сам сервис только и занимается ответами менеджеру (там что с диапазоном 5 сек.). Кстати, именованные пайпы отлично работают и в сети - указывай имя целевого компа (сервера пайпа) и пожалуйста на коннект. :)

5
26 февраля 2009 года
hardcase
4.5K / / 09.08.2005
Цитата: medved_68
Кстати, именованные пайпы отлично работают и в сети - указывай имя целевого компа (сервера пайпа) и пожалуйста на коннект. :)

Это при условии что в настройках системы разрешен доступ из сети к этому пайпу. Настроить файрвол на конкретную программу/порт все же проще, чем рыться в недрах gpedit.msc.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог