Изменение значения combobox свернутого стороннего приложения с помощью горячей клавиши [закрыто]
-
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