我開始寫這樣的代碼使用的AutoIt V3發送命令AutoIt腳本不發送鍵
$file = "G:\FullSetup800203.exe"
ShellExecuteWait($file)
Sleep(75000)
WinWaitActive("M1 Setup")
Send("!n")
的所有作品,發送,但命令不起作用。
我使用的是Windows 7 64位機器。
我開始寫這樣的代碼使用的AutoIt V3發送命令AutoIt腳本不發送鍵
$file = "G:\FullSetup800203.exe"
ShellExecuteWait($file)
Sleep(75000)
WinWaitActive("M1 Setup")
Send("!n")
的所有作品,發送,但命令不起作用。
我使用的是Windows 7 64位機器。
我可能是錯的,但它在我看來好像你使用ShellExecuteWait
當你實際上並不想要Wait
。
現在發生的事情是,您正在運行文件並等待它關閉,一旦進程退出,您又等待75秒後再等待某個窗口處於活動狀態,然後發送字符。這是你的意圖嗎?
發送命令總是發送密鑰。說它「不起作用」是不對的,它只是做你期望的。
i 2nd mat的回答。它很可能掛在ShellExecuteWait()上。 – Mechaflash
$file = "G:\FullSetup800203.exe"
ShellExecute($file)
Sleep(75000)
WinWaitActive("M1 Setup")
Send("!{n}")
試試。
經過長時間的搜索腳本爲什麼在Windows XP而不是Windows 7 64位上工作,我發現原因。 在Windows 7上,AutoIt腳本必須以管理員身份運行,才能爲某些應用程序發送擊鍵和訪問控制。
將管理員添加到cmd.exe的開頭 ControlSend(「Administrator:C:\ Windows \ system32 \ cmd.exe」,「」,「」,「cd C:\ Program Files(x86)\ thefile」 )@SW_SHOW)
如果從打開文件創建的窗口是「M1 Setup」,則不需要Sleep()函數,因爲WinWaitActive()已經將腳本'睡眠'直到文件開了。 – Mechaflash