Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.011 c
14-14726
Hirara
2002-11-09 17:03
2002.12.05
TChart


3-14385
alexandr_kr
2002-11-15 13:46
2002.12.05
Microsoft SQL SERVER


3-14426
OlegKrt
2002-11-18 09:06
2002.12.05
Можно ли выполнить запрос из TQuery по данным другого TQuery


8-14697
Ал
2002-08-19 15:54
2002.12.05
OpenGL


3-14379
Alexey Goosev
2002-11-19 22:47
2002.12.05
Только не смейтесь - поиск в мемо-поле




   Наверх