2009-12-15 8 views
2

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

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

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

ответ

3

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

AutoIt Код ...

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