Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

отлов MessageBox'а от определ. окна [D7, Win2k, WinXP]


Stany ©   (2005-11-18 13:35:00) 

Нужно автоматизировать работу проги путем кликания в окошки и нажатием кнопочек. В процессе работы проги периодически вываливаются MessageBox'ы с кнопочкой OK как определить их появление, пробовал EnumChildWindows - когда эти сообщения вываливаются оно становится поверх главного, главное сворачивается и список дочерних окон пуст. Что посоветуете?


Stany   (2005-11-26 12:52:00) [1]

>Игорь Шевченко

> GetWindowThreadProcessId

в смысле если ProcessId главного окна и мессадж бокса будут равны?


Игорь Шевченко   (2005-11-23 23:33:00) [2]


> а как выяснить что является ли мессаджбокс дочерним от именно
> от моего окна?


GetWindowThreadProcessId ?


Stany   (2005-11-23 18:36:00) [3]

с этим ясно, спасибо
а как выяснить что является ли мессаджбокс дочерним от именно от моего окна?


Leonid Troyanovsky   (2005-11-18 15:01:00) [4]


> Ботвин Дмитрий   (18.11.05 13:58) [3]

> А откуда такие данные, что класс окна у мессаджбокса '#32770'?


http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msaa/msaapndx_49q0.asp

--
Regards, LVT.


Игорь Шевченко   (2005-11-18 14:15:00) [5]

Ботвин Дмитрий   (18.11.05 13:58) [3]

Как у любого диалогового окна


Ботвин Дмитрий   (2005-11-18 13:58:00) [6]

Leonid Troyanovsky ©   (18.11.05 13:56) [2]

А откуда такие данные, что класс окна у мессаджбокса '#32770'?


Leonid Troyanovsky   (2005-11-18 13:56:00) [7]


> Stany ©   (18.11.05 13:35)  
> Нужно автоматизировать работу проги путем кликания в окошки
> и нажатием кнопочек. В процессе работы проги периодически
> вываливаются MessageBox'ы с кнопочкой OK как определить
> их появление, пробовал EnumChildWindows - когда эти сообщения
> вываливаются оно становится поверх главного, главное сворачивается
> и список дочерних окон пуст. Что посоветуете?



var
 DlgWnd: HWND;
..
 DlgWnd := FindWindow('#32770', Pointer(DlgCaption));
 if DlgWnd <> 0 then
   PostMessage(DlgWnd, WM_CLOSE, 0, 0);


--
Regards, LVT.


Ботвин Дмитрий   (2005-11-18 13:48:00) [8]

Stany ©   (18.11.05 13:35)

>список дочерних окон пуст

Так правильно, MessageBox - это не дочернее окно. При появившемся мессаджбоксе запусти "<Диск>:\Program Files\Borland\Delphi7\Bin\WS32.EXE"
она покажет тебе все открытые окна, их заголовки и классы вместе с дочерними. На основании этих данных и посылай сообщения окнам...


Наверх

Титульная страница Поиск, карта сайта Написать письмо