Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
3-14364
Calm
2002-11-19 13:30
2002.12.05
MS SQL - уведомление внешнего приложения


1-14509
Comp
2002-11-22 16:54
2002.12.05
StatusBar


6-14723
Лана Розанова
2002-10-07 10:10
2002.12.05
HTML


7-14845
Separator
2002-09-27 07:23
2002.12.05
Блокировка компа


1-14504
lscomp
2002-11-23 19:20
2002.12.05
Помогите! Как получить количество строк в текстовом файле...





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