Изменение значения combobox свернутого стороннего приложения с помощью горячей клавиши [закрыто]

StackOverflow https://stackoverflow.com/questions/1908268

  •  19-09-2019
  •  | 
  •  

Вопрос

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

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

Какой инструмент лучше подошел бы для этой работы?У кого-нибудь есть какие-нибудь указания, с чего начать?Например, ссылка на учебное пособие, демонстрирующее аналогичный сценарий.

Это было полезно?

Решение

Я написал вам небольшой пример того, как вы могли бы это сделать.По какой-то причине я использовал графический интерфейс, который я создаю в коде.Я подумаю о том, чтобы привести другой пример, который манипулирует графическим интерфейсом, не созданным в скрипте.

Код автоматического запуска...

HotKeySet("{ESC}", "_Exit")
HotKeySet("^{z}", "_SetItem1")
HotKeySet("^{x}", "_SetItem2")
HotKeySet("^{c}", "_SetItem3")

;Set up a quick GUI for us to play with.
$gui = GUICreate("Test GUI", 150, 150, -1, -1)
GUICtrlCreateCombo("", 10, 50, 130)
GUICtrlSetData(-1, "Item1|Item2|Item3", "Item1")
GUISetState(@SW_SHOW)

While 1
    ; Just to keep things running
WEnd

Func _SetItem1()
    ControlSend ( "Test GUI", "", "ComboBox1", "{up}{up}{up}" )
EndFunc   ;==>_SetItem1


Func _SetItem2()
    ControlSend ( "Test GUI", "", "ComboBox1", "{up}{up}{up}{down}" )
EndFunc   ;==>_SetItem1


Func _SetItem3()
    ControlSend ( "Test GUI", "", "ComboBox1", "{up}{up}{up}{down}{down}" )
EndFunc   ;==>_SetItem1

Func _Exit()
    Exit
EndFunc   ;==>_Exit
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top