2015-07-07 1 views
0

Я новичок в AHK и попытался имитировать нажатие кнопки на окне. Я хочу нажать кнопку «Принять» в окне всплеска. Однако это не сработает. Ниже находится WinSpy окна. Окно выглядит следующим образом: - enter image description hereНевозможно нажать кнопку в окне с помощью autohotkey

Элемент управления «TcxButton2» выделен в ClassNN.

Я попробовал следующее

^j:: 
;Run, KBDiag.exe , C:\Program Files\Knorr-Bremse\KB Diag 
If WinExist "AHK_class TformSplash" 
{ 
    ;WinActivate 
    ;PostMessage does not work too 
    ;PostMessage, 0x201, , , TcxButton2, Accept ; 0x201 is WM_LBUTTONDOWN 
    ;PostMessage, 0x202, , , TcxButton2, Accept ; 0x202 is WM_LBUTTONUP 
    ; 
    WinActivate 
    ControlFocus , TcxButton2, Knorr-Bremse SfN,, , 
    ControlClick , TcxButton2, Knorr-Bremse SfN,, , 
    MsgBox %ErrorLevel% ; ErrorLevel is '1' , hence something was not okay 


} 

Return 

Посмотреть скриншот окна заставки ниже enter image description here

Я не знаю, что я делаю неправильно. Помогите оценить!

ответ

0

Хорошо, мне удалось это решить. Свойство SetTitleMatchMode должно быть установлено в '2', если строка, которую нужно сопоставить, может присутствовать в любом месте окна.

Как видно в файле справки АХК: -

SetTitleMatchMode, MatchMode 

    2: A window's title can contain WinTitle anywhere inside it to be a match. 

Рабочий код здесь: -

SetTitleMatchMode, 2 
    ControlSendButton = TcxButton2 
    ControlFocus , %ControlSendButton%, ,Knorr-Bremse SfN, , 
    ; Also the string is not present in WinTitle, hence the string is matched against WinText now 
    ControlClick , %ControlSendButton%, ,Knorr-Bremse SfN, , 
+0

Я не думаю, что вам нужно 'controlFocus' здесь, не так ли? Кроме того, я могу ошибаться, но «WinActivate» тоже не нужен, поскольку он активирует только одно окно, которое уже является самым последним – Blauhirn

+0

WinActivate и ControlFocus могут быть необязательными, вы правы, но я думаю, что добавление этих двух строк делает его уверенным что всплывающее окно будет всегда щелчком. Никакого вреда, я думаю :) – CyprUS