Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.034 c
1-84107
Yanis
2003-06-10 14:57
2003.06.26
Как узнать какой кнопкой мыши был сделан клик?


14-84559
KSergey
2003-06-04 09:47
2003.06.26
Почему не принято (или как-то еще) распространяться по поводу...


14-84756
Думкин
2003-06-06 07:29
2003.06.26
Лето - отдых.


7-84803
fifo
2003-04-18 17:31
2003.06.26
Как недать приложению нарисоваться на экране


8-84442
reticon
2003-03-08 13:52
2003.06.26
формат файла





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский