2011-11-30 78 views
2

我開始寫這樣的代碼使用的AutoIt V3發送命令AutoIt腳本不發送鍵

$file = "G:\FullSetup800203.exe" 

ShellExecuteWait($file) 

Sleep(75000) 

WinWaitActive("M1 Setup") 

Send("!n") 

的所有作品,發送,但命令不起作用。

我使用的是Windows 7 64位機器。

+0

如果從打開文件創建的窗口是「M1 Setup」,則不需要Sleep()函數,因爲WinWaitActive()已經將腳本'睡眠'直到文件開了。 – Mechaflash

回答

3

我可能是錯的,但它在我看來好像你使用ShellExecuteWait當你實際上並不想要Wait

現在發生的事情是,您正在運行文件並等待它關閉,一旦進程退出,您又等待75秒後再等待某個窗口處於活動狀態,然後發送字符。這是你的意圖嗎?

發送命令總是發送密鑰。說它「不起作用」是不對的,它只是做你期望的。

+0

i 2nd mat的回答。它很可能掛在ShellExecuteWait()上。 – Mechaflash

0
$file = "G:\FullSetup800203.exe" 

ShellExecute($file) 

Sleep(75000) 

WinWaitActive("M1 Setup") 

Send("!{n}") 

試試。

0

經過長時間的搜索腳本爲什麼在Windows XP而不是Windows 7 64位上工作,我發現原因。 在Windows 7上,AutoIt腳本必須以管理員身份運行,才能爲某些應用程序發送擊鍵和訪問控制。

0

將管理員添加到cmd.exe的開頭 ControlSend(「Administrator:C:\ Windows \ system32 \ cmd.exe」,「」,「」,「cd C:\ Program Files(x86)\ thefile」 )@SW_SHOW)