我有一个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键或调度程序中的隐藏模式运行它,此解决方案也不起作用。
答案 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 ;