Форум: "WinAPI";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизService и Handle Найти похожие ветки
← →
Yogi (2002-12-14 14:10) [0]Приветствую! Продолжая заморачиваться с сервисами (службами), столкнулся со следующим вопросом: насколько я себе представляю, service application не имеет handle. Как же тогда вызывать функции API, требующие в качестве параметра handle? Например, как вызвать messagebox?
← →
Reindeer Moss Eater (2002-12-14 14:15) [1]MessageBox из сервиса - это круто
← →
RAA (2002-12-14 16:36) [2]Вот лично я сейчас пишу две программки вида сервис и проблемм с messagebox у меня не возникало(!))) А вот как создать форму без подключения модуля forms вот это уже задача(!)))
Причём размер моей программки 18 kb(!)))
← →
asmith (2002-12-14 17:22) [3]Посмотри на сервисные компоненты Винды - практически нигде нит интерактивности. Хотя это в принципе возможно-разрешить ему взаимодействовать с оболочкой. Если твоя проблема-задание параметров работы сервиса-напиши апликуху MyService Manager, пусть она, напрмер, болтается в трее, легко доступна юзеру и позволяет править настроечные параметры из реестра или базы. Изменил параметры, перезаписал, рестартовал сервис, а он при старте считал настройки и сменил поведение. Если нужно следить за выходными данными сервиса-организуй лог и пиши в него, или, что еще лучше, заведи себе ветку в Application Event Log. Можно также наделить сервис свойствами СОМ-сервера и обращаться к нему из любого клиента, поддерживающего скриптинг. Но в любом случае сервис и GUI-вещи плохо совмещающиеся.
← →
andrews (2003-01-24 08:33) [4]К вопросу о плохой совместимости GUI и сервиса. Как например AVP Control Center?
← →
Reindeer Moss Eater (2003-01-24 08:37) [5]AVP Control Center это сервис???
← →
Chubais (2003-01-24 09:16) [6]Reindeer Moss Eater (14.12.02 14:15)
MessageBox из сервиса - это круто
!!!!!!!!!!
← →
Cobalt (2003-01-24 09:26) [7]2 Yogi
Хэндлы бывают разные,
Черные, белые, красные.
Но всем почему-то хочется
Над ними заморочиться?!
P.S. (К Yogi) что такое хэндл?
← →
BSD (2003-01-24 09:43) [8]Используй MessageBox(Ex) с флагом MB_SERVICE_NOTIFICATION, и диалоговое окно отобразится в любои случае (даже если не включен Interract With Desktop).
← →
Vasily Terekhov (2003-01-24 14:16) [9]хендл есть
получить можно через FindWindow("TApplication","<Имя exe>")
← →
Hidrogen (2003-02-28 08:35) [10]Смотри
..\Delphi6\Source\Vcl\ScktSrvr.dpr
← →
qsecofr (2003-03-19 21:17) [11]А вопросик можно? Тип сервиса stDevice вообще в Delphi работает?
Просто нигде не получается найти хотя-бы маааааахонький примерчик, а по аналогии с WIN32 сервисом не получается...
Может есть у кого ссылки...
Заранее спасибо.
← →
Игорь Шевченко (2003-03-20 09:23) [12]Не работает
← →
Jack666 (2003-03-25 18:05) [13]Все из реально работающего сервиса:
1. MessageBox из сервиса легко работает, кто бы что не говорил:
Пример:
MessageBox(0,PChar(Exception(ExceptObject).Message),PChar(sCaption), MB_SERVICE_NOTIFICATION or MB_ICONSTOP);
2. Работает и это без проблем:
ShowMessage("Hello from service!!!");
3. Настройка параметров сервиса - тоже нет проблем:
procedure TATSService.ServiceStart(Sender: TService; var Started: Boolean);
begin
CheckStartupParameters;
SetConnectionString;
Init;
Started := True;
end;
где
procedure TATSService.CheckStartupParameters;
begin
if ParamCount > 1 then begin
if CompareText(sPortConfigParameter, Param[1]) = 0 then begin
SetupComPort := TSetupComPort.Create(ATSService);
try
SetupComPort.ShowModal;
finally
SetupComPort.Free;
end;
end
else if CompareText(sHelpParameter, Param[1]) = 0 then begin
MessageBox(0, PChar(sHelp), PChar(sCaption), MB_SERVICE_NOTIFICATION or MB_ICONINFORMATION);
end
else if CompareText(sAboutParameter, Param[1]) = 0 then begin
MessageBox(0, PChar(sAuthor), PChar(sCaption), MB_SERVICE_NOTIFICATION or MB_ICONINFORMATION);
end else
MessageBox(0, PChar(sBadParameter), PChar(sCaption), MB_SERVICE_NOTIFICATION or MB_ICONWARNING);
end;//if
end;
Тут вот исчо шо... параметры (к примеру -р -н и пр.) должен задавать в Service Control Panel и не закрывая окошка парамеров рестартовать сервис.
И последнее. Прежде чем все это делать, хорошо подумай, а нужна ли тебе ТАКАЯ интерактивность. Вариант с логами мне кажется лучче...
← →
Саня (2003-04-23 18:27) [14]А у меня другой вопрос... Как в сервисе отлавливать сообщения Windows, посланные SendMessage или подобным... Оконная форма не помогает
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.028 c