Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.05;
Скачать: CL | DM;

Вниз

PostMessage в сервисах   Найти похожие ветки 

 
Vn   (2002-10-18 11:31) [0]

Написал програму которая активно использует очередь сообщений. А теперь надо ее переделать в сервис. TService не имеет handle. Не понятно возможно ли использовать сабж.


 
Игорь Шевченко ©   (2002-10-18 11:54) [1]

Ходят злые слухи, что сервис, написанный на Delphi имеет окно и очередь сообщений.

А вообще, согласно теории, очередь сообщений имеет поток.


 
Alexander ©   (2002-10-22 17:01) [2]

А не подскажете, как получить сообщения из потока сервиса?


 
Игорь Шевченко ©   (2002-10-22 17:26) [3]

Alexander © (22.10.02 17:01)

А ... PeekMessage, GetMessage ...


 
Alexander ©   (2002-10-22 22:10) [4]

писать примерно так?

while GetMessage(Msg,0,0,0) do
if Msg.message = моё сооющение than
begin
...;
end;



 
Игорь Шевченко ©   (2002-10-23 10:06) [5]

Лучше PeekMessage


 
Alexander ©   (2002-10-23 13:16) [6]

Так мне в потоке нужно именно ждать сообщение, а PeekMessage не ждёт. Как написать лучше?


 
Игорь Шевченко ©   (2002-10-23 13:41) [7]

MsgWaitForMultipleObjects или GetMessage


 
Alexander ©   (2002-10-23 14:48) [8]

Пишу так:

hThread := CreateThread(nil, 0, @NotificationThread, @ThreadParams, 0, ThreadID);

где

function NotificationThread(P: Pointer): Cardinal; stdcall;
...
begin
...
while GetMessage(Msg, 0, 0, 0) do
if (Msg.message = WM_SPOOLERSTATUS) then
...
end;

так вот, до строки с if даже не доходит, т.е. не принимает ни одного сообщения.


 
Игорь Шевченко ©   (2002-10-23 15:00) [9]

Alexander © (23.10.02 14:48)

Мне трудно что-либо сказать по этим строчкам. Почему не доходит, откуда не доходит.


 
Alexander ©   (2002-10-23 15:08) [10]

Я в своей программе создаю поток (Win 98) У программы есть своё окно, но я отлаживаю код, который потом вставлю в сервис (или это сразу в сервисе надо проверять и в программе так не сработает?). в функции потока работа замирает на строке с GetMessage и более ничего в этой функции не происходит.


 
Игорь Шевченко ©   (2002-10-23 15:56) [11]

Ой. Сервисы, они вроде, в NT...

Рихтера, плз, почитайте


 
Alexander ©   (2002-10-23 16:11) [12]

Да... загнался совсем - не правильно объяснил. То, что сервисы только в NT - я знаю. У меня модуль - он в NT сервис, а в 98 - программа, которая запускается из RunServices реестра. Оконной функции нет и пытаюсь приведённым выше кодом обработать сообщение.


 
Игорь Шевченко ©   (2002-10-23 16:35) [13]

Alexander © (23.10.02 16:11)

Ой. Я к 98 никакого отношения, увы, не имею.


 
Polevi ©   (2002-10-23 16:43) [14]

окно создается в том же потоке где цикл GetMessage ?


 
Alexander ©   (2002-10-23 16:57) [15]

>Polevi
в потоке у меня вообще не создаётся никаких окон.
Окно есть там, откуда я создаю поток, но это пока я отлаживаю код, потом этого окна не будет.



Страницы: 1 вся ветка

Текущий архив: 2002.12.05;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
4-14864
dimod
2002-10-21 12:49
2002.12.05
WindowProc - обработка сообщений окна


1-14583
Lakec
2002-11-27 12:52
2002.12.05
Приложение подвисает, пока не станет активным


3-14414
Filat
2002-11-11 21:38
2002.12.05
Delphi 6, Word, закладки и база данных!


1-14656
oleg_er
2002-11-25 15:23
2002.12.05
StatusBar


1-14506
MMMaaaxxx
2002-11-26 00:11
2002.12.05
Вопрос по Ini-файлам