Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2009, 02:06   #1
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию Создание службы в Windows

Подскажите пожалуйста, как реализовать сервисом(службой) работу приложения, если быть конкретнее, то сервера многопользовательского чата? Просто нужно реализовать работу сервера именно в фоновом режиме, т.е. сервер должен принимать, обрабатывать сообщения, и должен запускаться при старте компьютера, так как не всегда имеется возможность зайти на выделенный сервер, чтобы запустить сервер чата как обычное приложение Windows...

Если вам не сложно, напишите пожалуйста исходники,как это всё реализовать? И если кто-нибудь знает, как сделать оснастку "Консоли управления (ММС)" для службы?

Очень надеюсь на вашу помощь
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 02.01.2009, 15:27   #2
ViktorXP
Форумчанин
 
Аватар для ViktorXP
 
Регистрация: 24.11.2006
Сообщений: 108
По умолчанию

Создай новый проект "Service Application"
У модуля TService1 свойства
ServiceType = stDevice
StartType = stSystem
{Все остальные по вкусу}
Обрабатываеш событие которые нужны, из их названия будет понятно что они делают. только смотри не повесь систему.
но не забывай и про минусы: у тебя не будет доступа к пользовательскому интерфейсу (хотя если немного помучатся то можно и это обойти) но для сервеса это не посути не нужно
ViktorXP вне форума Ответить с цитированием
Старый 02.01.2009, 15:48   #3
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

Извиняюсь, не очень точно описал проблемку.... просто уже сонный был=)

Как сделать так, чтобы сервис работал постоянно, то есть с момента запуска системы и до момента выключения?...
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 02.01.2009, 15:50   #4
Snoopy
Форумчанин Подтвердите свой е-майл
 
Аватар для Snoopy
 
Регистрация: 14.01.2008
Сообщений: 163
По умолчанию

Тут лежит замечательная статья на данную тему. Сам по ней учился создавать их
Snoopy вне форума Ответить с цитированием
Старый 03.01.2009, 02:58   #5
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

Snoopy, огромное вам человеческое спасибо, очень помогла ссылочка=)

Только теперь появился ещё один вопрос - что такое IPC и как с его помощью можно из GUI приложения управлять службой? А то очень не хочется управлять через реестр, задержки нежелательны... Очень надеюсь на помощь=)
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 03.01.2009, 03:06   #6
ViktorXP
Форумчанин
 
Аватар для ViktorXP
 
Регистрация: 24.11.2006
Сообщений: 108
По умолчанию

в демо примерах есть IPCDemos
если хотиш то могу выложить свои наброски для работы с мейслотом (в свое время для себя написал клас, хотя в основном его заточивал для передачи инфы между компами)
ViktorXP вне форума Ответить с цитированием
Старый 03.01.2009, 13:17   #7
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

VictorXP, было бы замечательно=)
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 03.01.2009, 15:52   #8
ViktorXP
Форумчанин
 
Аватар для ViktorXP
 
Регистрация: 24.11.2006
Сообщений: 108
По умолчанию

UMailSlot.zip
Его можно зарегить как VCL компонент и юзать визуально
а можно и динамически
Код:
 ms := TMailSlot.Create(nil);
 ms.MailSlotName := 'Test'; // имя мейл слота
 ms.OnRead := MailSlotRead; // событие которое будет срабатывать по приходу данных
 // вот как выглядит сам обработчик события
 procedure Form1.MailSlotRead(Sender: TObject; Data: TPack);
 begin
   MessageBox(0,'',PChar(Data.Who), 0);
 end;
отправка данных осуществляется
Код:
var
  Pack: TPack;
bagin
  Pack.Who := 'Тестовая строка';
  ms.Send('',Pack); // отправка
  // первый парамтр это кому отправляем (имя компа), если себе то ставим точку или же пустоту и тогда он сам поставит точку
  // второй парамтр это данные.
сам тип отписан так
Код:
  TPack = record
    ID  : Byte;
    Who : string[100];
    Driv: Char;
  end;
но ты его сам можеш переписать под свои нужны. можна канешно и переписать под динамический масив но больше гемороя будет с получением и отправкай данных. а так точно знаеш сколько нужно принять данных.
ViktorXP вне форума Ответить с цитированием
Старый 03.01.2009, 19:57   #9
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

VictorXP, огромное спасибо, буду разбираться=) или может лучше будет сделать связь через TServerSocket и TClientSocket с
Код:
host:='127.0.0.1';
?
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написание службы (выбор задачи) forever Софт 3 07.02.2008 17:25
Забавы с Windows (создание заставки) SCS Свободное общение 4 05.10.2007 12:53
службы bloood Общие вопросы C/C++ 1 02.04.2007 02:04
Программа в иде службы ale_krolik Общие вопросы Delphi 1 13.12.2006 12:00