Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

За 2005-10-12

Re: Очередь сообщений

> как узнать, что очередь сообщений для чужого окна на ввод с
> клавиатуры
> пуста.
> ::GetQueueStatus(QS_KEY) работает только для данного потока.

SetWindowsHookEx() болжно помочь. Есть ли способы проще, не знаю. Но
ИМХО, вряд ли.

--
С уважением, boroda

Номер выпуска : 4977
Возраст листа : 752 (дней)
Количество подписчиков : 530
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/453791
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

   Шматко А.А. 2005-10-12 13:41:05 (#453791)

Очередь сообщений

Hello форум,

как узнать, что очередь сообщений для чужого окна на ввод с клавиатуры
пуста.
::GetQueueStatus(QS_KEY) работает только для данного потока. Подключение
с помощью
AttachThreadInput не помогает похоже. Пытаюсь с пом. PeekMessage - та же история.

EstPause=2;
if (!AttachThreadInput(::GetWindowThreadProcessId(par, 0),
::AfxGetThread( )->m_nThreadID, TRUE)){
AfxMessageBox("Не удается подключиться к потоку");
}
int coun=0, res=0;//
MSG msg;
/*while (::GetQueueStatus(QS_KEY)/*::GetInputState()){
coun++;//
Sleep(EstPause);
}*/
//WaitMessage();
res=::PeekMessage(&msg, par, WM_KEYFIRST, WM_KEYLAST, PM_NOREMOVE);
while (res>0){
coun++;//
Sleep(EstPause);
res=::PeekMessage(&msg, par, WM_KEYFIRST, WM_KEYLAST, PM_NOREMOVE);
}
if (res==-1) AfxMessageBox("PeekMessage не работает");
res=::PeekMessage(&msg, chil, WM_KEYFIRST, WM_KEYLAST, PM_NOREMOVE);
while (res>0){
coun++;//
Sleep(EstPause);
res=::PeekMessage(&msg, chil, WM_KEYFIRST, WM_KEYLAST, PM_NOREMOVE);
}
if (res==-1) AfxMessageBox("PeekMessage2 не работает");
if (coun>1) AfxMessageBox("coun>1");

   2005-10-12 00:03:22 (#453485)