我有一个封闭源代码的第三方 Windows 软件,它只包含一个窗口,并且几乎一直被最小化。我希望能够通过系统范围的热键更改该窗口中组合框的选定项。如果可能的话,我想在此过程中尽量减少第三方应用程序。
我想这应该很容易用 Autoit 或 Autohotkey 来完成,但我以前从未使用过这两种工具。
哪种工具更适合这项工作?有人对从哪里开始有任何指示吗?例如,指向显示类似场景的教程的链接。
我有一个封闭源代码的第三方 Windows 软件,它只包含一个窗口,并且几乎一直被最小化。我希望能够通过系统范围的热键更改该窗口中组合框的选定项。如果可能的话,我想在此过程中尽量减少第三方应用程序。
我想这应该很容易用 Autoit 或 Autohotkey 来完成,但我以前从未使用过这两种工具。
哪种工具更适合这项工作?有人对从哪里开始有任何指示吗?例如,指向显示类似场景的教程的链接。
我给你写了一个小例子,说明如何做到这一点。出于某种原因,我使用了在代码中构建的 GUI。我将看到另一个示例,该示例操作未在脚本中创建的 GUI。
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