2

我有一个封闭源代码的第三方 Windows 软件,它只包含一个窗口,并且几乎一直被最小化。我希望能够通过系统范围的热键更改该窗口中组合框的选定项。如果可能的话,我想在此过程中尽量减少第三方应用程序。

我想这应该很容易用 Autoit 或 Autohotkey 来完成,但我以前从未使用过这两种工具。

哪种工具更适合这项工作?有人对从哪里开始有任何指示吗?例如,指向显示类似场景的教程的链接。

4

1 回答 1

3

我给你写了一个小例子,说明如何做到这一点。出于某种原因,我使用了在代码中构建的 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
于 2009-12-16T00:37:56.520 回答