如何使用AutoIt控制作为Windows服务运行的UI应用程序?

时间:2014-02-28 09:00:41

标签: service autoit

我有一个作为Windows服务运行的UI应用程序,我想使用AutoIt来控制它。我可以通过使用WinGetHandle&获取UI窗口的句柄并使其处于活动状态。 WinActivate命令。但我无法控制ComboBox和Button。我使用以下脚本来完成预期的任务:

Local $hWnd1 = WinGetHandle ("UI Window", "")                    ;to get the handle of the UI
WinActivate( $hWnd1 )                                ;to make it active
Sleep(2000)
ControlCommand($hWnd1, "", "ComboBox1", "ShowDropDown", "")          ;to show the dropdown of Combo box
Sleep(3000)
ControlCommand($hWnd1, "", "ComboBox1", "SelectString", 'CollegeName')       ;to select the string from dropdown list
Sleep(2000)
ControlCommand($hWnd1, "", "ComboBox1", "HideDropDown", "")          ;to hide the dropdown of Combo box
Sleep(1000)
ControlClick($hWnd1, "", "[CLASS:Button; TEXT:Submit; INSTANCE:1]")      ;to click on 'Submit' button
Sleep(2000)

这段代码只是让窗口处于活动状态,并且在某些时间不做任何其他操作后退出程序。这个问题是否因为它作为Windows服务运行而发生?如果是这样,我如何将命令发送到我的UI控件?请尽快帮助我。 PS:AutoIt窗口信息能够识别UI的每个控件(包括ComboBox& Button)。我不想将我的脚本作为Windows服务运行。

1 个答案:

答案 0 :(得分:0)

使用

#RequireAdmin

使用和播放

ControlCommand($hWnd1, "", "[ID:ComboBox1]", "ShowDropDown", "")