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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2015, 21:40   #1
aesoem
Форумчанин
 
Регистрация: 24.12.2007
Сообщений: 288
По умолчанию Создание службы в Delphi

Подскажите, пишу службу+программа к этой службе... Нужен обмен данными между службой и программой.. Решил использовать serversocket\clientsocket(localhost )... Соединение проходит успешно, даже кое что отправил со службы в программу но в обратном направлении работать не хочет...
Капаю в сторону прав доступа... Службы делятся на группы, получается моей службе нужна группа ObjectName
Пытался добиться этого так...
Код:
procedure TSFS.ServiceAfterInstall(Sender: TService);
var
Reg: TRegIniFile;
begin
Reg := TRegIniFile.Create(KEY_ALL_ACCESS);
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('\SYSTEM\CurrentControlSet\Services\SFS',True);
Reg.WriteString('\SYSTEM\CurrentControlSet\Services\SFS','ObjectName','NT AUTHORITY\NetworkService');
Reg.CloseKey;
finally
Reg.Free;
end;
end;
Но программа все равно отмечена как "без группы"в диспетчере... Как дать программе права на работу с сетью?И поможет ли это в моем случае?

Запустил службу от имени
'ObjectName','NT AUTHORITY\NetworkService'

Проблема все таже, идет соединение и сразу же разрыв

Последний раз редактировалось Stilet; 22.09.2015 в 11:10.
aesoem вне форума Ответить с цитированием
Старый 22.09.2015, 11:11   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но в обратном направлении работать не хочет...
А в службе твоей хотя бы прослушиватель сети есть?
Как выглядит код обмена сообщениями?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.09.2015, 13:18   #3
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Если бы мозгов больше было бы, то хватило бы ума заглянуть в поисковик и найти там объект TService. А создается через File- New- Other- Service Application
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 23.09.2015, 00:35   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,869
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
Если бы мозгов больше было бы, то хватило бы ума заглянуть в поисковик и найти там объект TService. А создается через File- New- Other- Service Application
Саня сороковой, ты бы лучше про мозги-то молчал.
Откуда по-твоему ТС взял событие ServiceAfterInstall?
northener вне форума Ответить с цитированием
Старый 30.09.2015, 14:35   #5
aesoem
Форумчанин
 
Регистрация: 24.12.2007
Сообщений: 288
По умолчанию

Короче все работает без выделения всяких прав и т.д.
просто в службе у меня был serversocket и в событии onread у мены был код который вешал службу.
aesoem вне форума Ответить с цитированием
Старый 30.09.2015, 14:42   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я бы на твоем месте не использовал этот компонент. Лучше winsock с неблокирующим сокетом проверкой через select() есть ли в сокете что-то.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.10.2015, 13:11   #7
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

может что-то я не знаю про сервисы, но не проще ли общаться с локальной программой-клиентом через pipes? как по мне, это более логично, чем использовать сеть
GreenWizard вне форума Ответить с цитированием
Старый 02.10.2015, 13:26   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как по мне, это более логично, чем использовать сеть
А еще логичнее Shared Memory
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.10.2015, 13:40   #9
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А еще логичнее Shared Memory
я бы не стал т. к. и не особо хорошо знаком с этой частью api, и лишняя сложность (pipe проще для восприятие..... minecraft прямо тебе: труба сюда, труба туда, и входы/выходы ), и с pipe проще сделать "один сервис/сервер - много клиентов), и, если я не ошибаюсь, они позволяют даже прозрачно создавать связи в локальной сети... прямо пиар-компания вышла) хотя сам нарывался на непонятные ошибки с ними: данные отправлял и они тупо пропадали о_о
GreenWizard вне форума Ответить с цитированием
Старый 02.10.2015, 14:02   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
с pipe проще сделать
Как сказать... На вкус и цвет - ТС захотел сокеты. Ради бога.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание службы Ky3Heu, Общие вопросы Delphi 13 23.11.2011 11:21
vs 2010 и создание службы windows CodeNOT Visual C++ 2 23.05.2011 21:29
Создание службы Windows GenniY Общие вопросы Delphi 2 14.04.2010 13:51
Создание службы в Windows goblinyara Общие вопросы Delphi 8 03.01.2009 19:57
Как запускать службы через Delphi Kastor Безопасность, Шифрование 3 04.04.2007 20:26