SendMessage

Материал из UoPilot
Версия от 21:30, 27 августа 2019; Tatikoma (обсуждение | вклад) (Новая страница: « == Описание == Отсылает приложению WinAPI событие. == Синтаксис == Привязка к окну: Да. <br>Рабо...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Описание

Отсылает приложению WinAPI событие.

Синтаксис

Привязка к окну: Да. <br>Работа со свернутым окном: Да.

sendmessage ([hWnd=workwindow [Msg=0 [wParam=0 [lParam=0]]]])
postmessage ([hWnd=workwindow [Msg=0 [wParam=0 [lParam=0]]]])

где: <br>[hWnd=workwindow] - хэндл окна в которое происходит отсылка. <br>[Msg] - код события. <br>[wParam] - параметр события. <br>[lParam] - параметр события. <br> Отличие SendMessage в том, что он дожидается ответа на посланное событие, PostMessage не ожидает ответ.

Примеры

//Пример 1
exec notepad //Открываем экземпляр Блокнот'а
set #HWND findwindow ('Блокнот') //Находим его окно
set #WM_CLOSE hex2dec(0x0010) //см. MSDN
//lParam и wParam не используются
set $s sendmessage (#HWND #WM_CLOSE 0 0) //приказываем окну закрыться
end_script
//Пример 2
exec notepad //Открываем экземпляр Блокнот'а
set #HWND findwindow ('Блокнот') //Находим его окно
set #WM_SYSCOMMAND hex2dec(0x0112) //см. MSDN
//Используем только wParam
set #wParam hex2dec(0xF020) //wParam = SC_MINIMIZE
set $s sendmessage (#HWND #WM_SYSCOMMAND #wParam 0) //приказываем окну свернуться
end_script

Смотрите также

hex2dec <br>Findwindow

История развития

2.37 <br>Добавил функции отправки сообщений в окна приложений:

set $s sendmessage ([hWnd=workwindow [Msg=0 [wParam=0 [lParam=0]]]]) - ждет обработки и возвращает то, что ему ответили;
set $p postmessage ([hWnd=workwindow [Msg=0 [wParam=0 [lParam=0]]]]) - ничего не ждет, возвращает 0 в случае ошибки.