:::

AutoIt使用Run()執行非exe, bat等執行檔

image

這次來記錄一下AutoItRun()函數的另類用法。

Windows的腳本機器人AutoIt

AutoIt是一個執行於Windows環境的腳本機器人,我以前就用AutoIt製作過VirtualBox的自動安裝程式,之後我偶爾也會用AutoIt來幫我排程處理例行事務,省下我自己動手的功夫。

Run()函數以命令列指令執行

有時候我會需要AutoIt去執行外部程式,這可以藉由它內建的Run()函數來執行。但是AutoIt的Run()函數預設只能執行exe、bat、com、pif,如果參數中的程式不是這些類型,那麼Run()下去就不會有任何反應。

這時候可以以「命令列」(console)的方式來處理,請使用以下的指令:

Run(@ComSpec & " /c " & 'commandName', "", @SW_HIDE)

commandName可以替換成你要執行的程式路徑。要注意到" /c "前後是有空格的喔。

開啟絕對位置檔案

舉例來說,我希望AutoIt自動幫我開啟一個網頁程式「c:\index.html」的話,指令要這樣寫:

Run(@ComSpec & " /c " & 'c:\index.html', "", @SW_HIDE)
開啟與腳本相同位置的檔案

如果我要開啟與腳本相同位置的檔案,則可以利用「@ScriptDir」。舉例來說,「index.html」擺在跟AutoIt腳本(或是編譯過的執行檔)相同的目錄之中,則可以利用以下指令來執行「index.html」:

Run(@ComSpec & " /c " & 'index.html', @ScriptDir, @SW_HIDE)

結語

其實這個作法已經寫在Run()函數的網頁說明中,但傻傻的我還是google了好一段時間才發現,在此留下一個記錄。

另外也有人主張用ShellExecute()函數來開啟。以後有機會我再研究看看好了。

總共1 則留言, (我要發問)

  1. 最近寫了幾篇AutoIT的應用,發現這篇Run()的記錄非常的實用,在此特別感謝。

    回覆刪除

留言工具: