1、運行程序 Run 命令或者函數(shù)用來運行外部可執(zhí)行文件 AU3: Run ( "文件名" [, "工作目錄" [, 標志]] ) EXAMPLE: AU3: Run("Notepad.exe") 上面的示例中都沒有給出程序“Notepad.exe”的路徑,為什么仍能執(zhí)行?這是因為它們都會自動在腳本所在目錄下搜尋目標文件,如有則運行,否則就到系統(tǒng)文件夾(%PATH%)中搜尋。 注意: A)某些程序必須給定“工作目錄”才能成功運行! B)給出完整的文件路徑有助于輕微提高程序的可靠性。 C)AHK的Run命令可以用來運行程序和直接打開文件,而AU3的Run函數(shù)則只能用來運行程序(可執(zhí)行文件)或傳遞參數(shù)讓某個程序打開目標文件。 當然,運行程序的功能還不僅僅是這么簡單,我們還可以指定運行程序的初始狀態(tài),比如讓運行的記事本窗口以最大化狀態(tài)顯示(或者最小化、隱藏): 【示例 2.1.2 】 AU3: Run("Notepad.exe", "", @SW_MAXIMIZE) 2、打開文件 前面已經(jīng)提到,AHK的Run命令可以直接打開文件,而AU3的Run函數(shù)則只能用來運行程序,因此在打開文件的方式上有點不同:AHK腳本中可直接給出目標文件,而AHK將自動運行該文件的關(guān)聯(lián)程序來打開它;而AU3則必須由用戶自己傳遞參數(shù)讓某個程序打開目標文件。 【示例 2.2.1 】 AHK: Run, MyFile.txt Run, Notepad.exe MyFile.txt AU3: Run("Notepad.exe MyFile.txt") ps:AU3以“函數(shù)”的形式提供: Function(param1, param2, …)
3、以命令行形式運行程序 可以考慮運行系統(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í)行字符串指定的命令然后終斷”。對此比較直觀的解釋是 /k 將在執(zhí)行完命令后保留命令提示窗口,而 /c 則將在執(zhí)行完命令之后關(guān)閉命令提示窗口。 C)符號“&”是AU3定義的字符串連接符。
附上我的兩段代碼: ;Run("rundll32.exe shell32.dll,Control_RunDLL ncpa.cpl,,2") ;Run("Notepad.exe d:\Nw.ps1") $file = FileOpen("d:\Nw.ps1", 0) ;只能打開文件進行操作,但看不到文件 ; 檢查打開的文件是否可讀 If $file = -1 Then MsgBox(0, "錯誤", "不能打開文件.") Exit EndIf ; 每次讀取一行文本,直到文件結(jié)束. While 1 $line = FileReadLine($file) If @error = -1 Then ExitLoop MsgBox(0, "讀取的行:", $line) Wend ===================================================== Dim $title Dim $ok_control $title="關(guān)于 計算器" $ok_control="[CLASS:Button;TEXT:確定]" WinActivate($title) ControlClick($title,"",$ok_control)
|