二、運(yùn)行程序或打開文件
1、運(yùn)行程序
Run t命令或者函數(shù)用來運(yùn)行外部可執(zhí)行文件,AHK還可利用它來直接打開文件。
AHK:
Run, 目標(biāo)文件 [, 工作目錄, Max|Min|Hide|UseErrorLevel, 輸出PID變量]
AU3:
Run ( "文件名" [, "工作目錄" [, 標(biāo)志]] )
【示例 2.1.1 】
AHK:
Run, Notepad.exe
AU3:
Run("Notepad.exe")
上面的示例中都沒有給出程序“Notepad.exe”的路徑,為什么仍能執(zhí)行?這是因?yàn)樗鼈兌紩?huì)自動(dòng)在腳本所在目錄下搜尋目標(biāo)文件,如有則運(yùn)行,否則就到系統(tǒng)文件夾(%PATH%)中搜尋。
注意:
A)某些程序必須給定“工作目錄”才能成功運(yùn)行!
B)給出完整的文件路徑有助于輕微提高程序的可靠性。
C)AHK的Run命令可以用來運(yùn)行程序和直接打開文件,而AU3的Run函數(shù)則只能用來運(yùn)行程序(可執(zhí)行文件)或傳遞參數(shù)讓某個(gè)程序打開目標(biāo)文件。
當(dāng)然,運(yùn)行程序的功能還不僅僅是這么簡(jiǎn)單,我們還可以指定運(yùn)行程序的初始狀態(tài),比如讓運(yùn)行的記事本窗口以最大化狀態(tài)顯示(或者最小化、隱藏):
【示例 2.1.2 】
AHK:
Run, Notepad.exe, , Max
AU3:
Run("Notepad.exe", "", @SW_MAXIMIZE)
2、打開文件
前面已經(jīng)提到,AHK的Run命令可以直接打開文件,而AU3的Run函數(shù)則只能用來運(yùn)行程序,因此在打開文件的方式上有點(diǎn)不同:AHK腳本中可直接給出目標(biāo)文件,而AHK將自動(dòng)運(yùn)行該文件的關(guān)聯(lián)程序來打開它;而AU3則必須由用戶自己傳遞參數(shù)讓某個(gè)程序打開目標(biāo)文件。
【示例 2.2.1 】
AHK:
Run, MyFile.txt
Run, Notepad.exe MyFile.txt
AU3:
Run("Notepad.exe MyFile.txt")
3、以命令行形式運(yùn)行程序
可以考慮運(yùn)行系統(tǒng)的命令行解釋器(cmd.exe/command.com),然后指定要執(zhí)行的命令并傳遞參數(shù)。
假設(shè)我們要執(zhí)行命令“dir C:\WINDOWS\system 32” ,用以列出指定目錄的所有文件及子目錄。
【示例 2.3.1 】
AHK:
Run, %ComSpec% /k dir C:\WINDOWS\system32
AU3:
Run(@ComSpec & " /k dir C:\WINDOWS\system32")
注意:
A)ComSpec是腳本內(nèi)建的用以指示命令行解釋器位置的變量或宏。
B)/k 參數(shù)表示“執(zhí)行字符串指定的命令但保留”,若改為 /c 則表示“執(zhí)行字符串指定的命令然后終斷”。對(duì)此比較直觀的解釋是 /k 將在執(zhí)行完命令后保留命令提示窗口,而 /c 則將在執(zhí)行完命令之后關(guān)閉命令提示窗口。
C)符號(hào)“&”是AU3定義的字符串連接符。
4、特殊應(yīng)用
A)打開網(wǎng)頁(yè)
【示例 2.4.1 】
AHK:
Run,
www. Run, %A_ProgramFiles%\Internet Explorer\IEXPLORE.EXE
www. AU3:
Run(@ProgramFilesDir & "\Internet Explorer\IEXPLORE.EXE
www.")
B)打開特殊文件夾
系統(tǒng)的某些特殊文件夾被定義了相應(yīng)的CLSID(請(qǐng)查看幫助文檔),我們可利用它來打開相應(yīng)的文件夾,比如打開回收站:
【示例 2.4.2 】
AHK:
Run ::{645ff040-5081-101b -9f 08-00aa 002f 954e}
AU3:
不適用!
C)運(yùn)行控制面板工具
微軟已經(jīng)為我們提供了通過命令行打開控制面板某個(gè)工具或項(xiàng)目的方式,比如打開系統(tǒng)屬性窗口:
【示例 2.4.3 】
AHK:
Run control sysdm.cpl
AU3:
Run("control sysdm.cpl")
關(guān)于訪問控制面板項(xiàng)目的詳細(xì)介紹請(qǐng)查看此文:文章地址。
D)指定搜索位置并打開搜索窗口
假設(shè)我們要打開一個(gè)搜索窗口,而且要指定搜索位置,比如C:\:
【示例 2.4.4 】
AHK:
Run, find C:\
AU3:
不適用!
E)顯示指定文件的屬性窗口
假設(shè)我們要打開文件“MyFile.txt”的屬性窗口,則使用關(guān)鍵字properties 然后接上目標(biāo)文件即可:
【示例 2.4.5 】
AHK:
Run, properties MyFile.txt
AU3:
不適用!
注意:AHK在退出前將自動(dòng)關(guān)閉打開的屬性窗口!
F)用“資源管理器”打開指定文件夾
我們知道使用Run, explorer C: 或Run("explorer C:") 即可打開指定的文件夾,可是有時(shí)候我們需要在資源管理器中打開它,這時(shí)可使用關(guān)鍵字 explore:
【示例 2.4.6 】
AHK:
Run, explore C:
AU3:
run("explorer.exe /e,C:\")
G)打印指定文件
要打印指定文件,可使用關(guān)鍵字 print:
【示例 2.4.7 】
AHK:
Run, print MyFile.txt
AU3:
不適用!
F)用“資源管理器”打開指定文件夾
我們知道使用Run, explorer C: 或Run("explorer C:") 即可打開指定的文件夾,可是有時(shí)候我們需要在資源管理器中打開它,這時(shí)可使用關(guān)鍵字 explore:
【示例 2.4.6 】
AHK:
Run, explore C:
AU3:
不適用!
run("explorer.exe /e,d:\")
這樣就可以做到你說的樹狀型打開目標(biāo)文件夾了!