Автоотключение получает управление из всплывающей подсказки

#controls #autohotkey #handle

#элементы управления #автоотключение #обрабатывать

Вопрос:

Мне нужно найти имя элемента управления, с которым связана его всплывающая подсказка. Я спрашиваю об этом, потому что мне нужно управлять щелчком мыши в TeamCenter 10, но имена элементов управления продолжают меняться, как только вы нажимаете на любой из них. Это затрудняет бесперебойную работу моего кода, когда мне нужно повторять задачи.

Если есть лучший способ сделать это (в Autohotkey), пожалуйста, дайте мне знать.

Комментарии:

1. Можете ли вы привести несколько примеров имен элементов управления до и после нажатия на них? Расположение этих элементов управления также может быть полезным. Используйте утилиту Window Spy для извлечения всей этой информации.

2. Конечно, используя вышеупомянутую утилиту, я нажал на элемент управления, который я хотел бы использовать, и он выдал мне: classNN: SWT_Window026

3. После нажатия на другой элемент управления, а затем на оригинал, он выдал мне следующее (в Window Spy): classNN: SWT_Window027

Ответ №1:

Вы можете попробовать это (заменить title of TeamCenter 10 точным названием окна TeamCenter, как показано в Window Spy).:

 F1::
; Retrieve the control name for each control in a window:
WinGet, List, ControlList, title of TeamCenter 10
; Examine the individual control names one by one, using a parsing loop:
Loop, Parse, List, `n
{
    If InStr(A_LoopField, "SWT_Window02") ; use only the part of the control name that is always shown in Window Spy
         ControlClick, %A_LoopField%, title of TeamCenter 10
            break
}
return
  

https://autohotkey.com/docs/commands/WinGet.htm#ControlList