autoit:以静默方式从内部菜单运行应用程序和打开文件

时间:2014-11-07 14:58:14

标签: autoit mode silent

我有一个exe应用程序,我在一天内关闭并运行多次。每次我在运行此应用程序后,我必须执行一些操作:选择“文件”菜单并选择文件。

此代码仅在我使用@SW_MAXIMIZE时有效,但如果我使用@SW_HIDE运行此代码 - 应用程序未以congiguraion.cfg文件

启动
Example()
Func Example()
    Local $iPID = Run("c:\Program Files (x86)\Server.exe", "", @SW_MAXIMIZE)
    Local $FileName = "c:\Program Files (x86)\congiguraion.cfg"
    Sleep(2000)
    Send("^o")
    Sleep(2000)
    Send($FileName)
    Sleep(500)
    Send("{ENTER}")
EndFunc   ;

我想创建exe文件并将其放在带触发器的调度程序中:在启动时启动任务。这就是我需要以静音模式运行的原因。

P.S。

我也改变了我的计划:

Example()
Func Example()
    Run("c:\Program Files (x86)\Server.exe")
    Local $hWnd = WinWaitActive("Server")
    Sleep(2000)
    ControlSend($hWnd, "", "", "^o")
    Sleep(2000)
    ControlSend($hWnd, "", "", "c:\Program Files (x86)\congiguraion.cfg{ENTER}")
EndFunc   ;

如果我尝试使用@SW_HIDE键或调度程序中的隐藏模式运行它,此解决方案也不起作用。

1 个答案:

答案 0 :(得分:0)

有一个名为ControlSend的功能。如果您想使用它,我建议使用' AutoIt Window Info"它与通常的AutoIt安装一起安装。使用此工具,您只需运行程序并获取控件名称/ ID并将其填入函数中。

如果您对ControlSend的工作原理有任何疑问,请随时询问:)

Example()
Func Example()
    Run("notepad","")
    Local $hWnd = WinWaitActive("Unbenannt - Editor")
    WinSetState($hWnd,"", @SW_HIDE )
    ControlSend($hWnd, "", "", "Sample Text")
        ControlSend($hWnd, "", "", "^o")
        ControlSend($hWnd, "", "", "MyText.txt{ENTER}")
        WinSetState($hWnd,"", @SW_SHOW )
EndFunc   ;