HukpoFuJl
AццkuЙ HukpoFuJl
- Сообщения
- 98
- Репутация
- 38
В общем есть программа (всё тот же CommFort чат), в которой есть контрол (кнопка), но это не обычный Button или что-либо иное, это по сути какой-то графический контрол и AutoIt Window Info на него не реагирует никак, т.е. как буд-то на её месте ничего нету... Пробовал получить список контролов, методом из темы [Элементы GUI] Все контролы окна., но тоже мимо...
Нужно как-то сэмулировать нажатие этой кнопки, или что-то подобное... По нажатию этой кнопки отображается окно настроек программы... Вычислить кнопку графически по пикселям и/или отправить клик по координатам - не вариант, т.к. программа имеет возможность смены графических оболочек, при этом меняется как вид, так и положение кнопки.
У меня появилась идея отправить meassage окну, на котором расположен контрол, только вот какой? Можно как-нить отлавливать все месаджи окна? Ну т.е. что-то вроде GUIGetMsg, только для стороннего приложения...
Пробовал в общем через шел-хук:
Но SHELLHOOK как я понимаю отлавливает только системные события, типо сворачивания/разворачивания/уничтожения/обновления окна и т.п.
Как можно поймать все сообщения определенного окна?
Ну или предложите другой вариант решения ИМХО...
Нужно как-то сэмулировать нажатие этой кнопки, или что-то подобное... По нажатию этой кнопки отображается окно настроек программы... Вычислить кнопку графически по пикселям и/или отправить клик по координатам - не вариант, т.к. программа имеет возможность смены графических оболочек, при этом меняется как вид, так и положение кнопки.
У меня появилась идея отправить meassage окну, на котором расположен контрол, только вот какой? Можно как-нить отлавливать все месаджи окна? Ну т.е. что-то вроде GUIGetMsg, только для стороннего приложения...
Пробовал в общем через шел-хук:
Код:
#Include <WinAPIEx.au3>
Opt('MustDeclareVars', 1)
Global $hForm = GUICreate('')
GUIRegisterMsg(_WinAPI_RegisterWindowMessage('shellhook'), '_ShellHookProc')
_WinAPI_RegisterShellHookWindow($hForm)
While 1
Sleep(100)
WEnd
Func _ShellHookProc($hWnd, $iMsg, $wParam, $lParam)
TrayTip (WinGetTitle($lParam),$iMsg&" | "&$wParam&" | "&$hWnd,5,1)
EndFunc ;==>_ShellHookProc
Func OnAutoItExit()
_WinAPI_DeregisterShellHookWindow($hForm)
EndFunc ;==>OnAutoItExit
Как можно поймать все сообщения определенного окна?
Ну или предложите другой вариант решения ИМХО...