1、運行程序
Run 命令或者函數用來(lái)運行外部可執行文件
AU3:
Run ( "文件名" [, "工作目錄" [, 標志]] )
EXAMPLE:
AU3:
Run("Notepad.exe")
上面的示例中都沒(méi)有給出程序“Notepad.exe”的路徑,為什么仍能執行?這是因為它們都會(huì )自動(dòng)在腳本所在目錄下搜尋目標文件,如有則運行,否則就到系統文件夾(%PATH%)中搜尋。
注意:
A)某些程序必須給定“工作目錄”才能成功運行!
B)給出完整的文件路徑有助于輕微提高程序的可靠性。
C)AHK的Run命令可以用來(lái)運行程序和直接打開(kāi)文件,而AU3的Run函數則只能用來(lái)運行程序(可執行文件)或傳遞參數讓某個(gè)程序打開(kāi)目標文件。
當然,運行程序的功能還不僅僅是這么簡(jiǎn)單,我們還可以指定運行程序的初始狀態(tài),比如讓運行的記事本窗口以最大化狀態(tài)顯示(或者最小化、隱藏):
【示例 2.1.2 】
AU3:
Run("Notepad.exe", "", @SW_MAXIMIZE)
2、打開(kāi)文件
前面已經(jīng)提到,AHK的Run命令可以直接打開(kāi)文件,而AU3的Run函數則只能用來(lái)運行程序,因此在打開(kāi)文件的方式上有點(diǎn)不同:AHK腳本中可直接給出目標文件,而AHK將自動(dòng)運行該文件的關(guān)聯(lián)程序來(lái)打開(kāi)它;而AU3則必須由用戶(hù)自己傳遞參數讓某個(gè)程序打開(kāi)目標文件。
【示例 2.2.1 】
AHK:
Run, MyFile.txt
Run, Notepad.exe MyFile.txt
AU3:
Run("Notepad.exe MyFile.txt")
ps:AU3以“函數”的形式提供:
Function(param1, param2, …)
3、以命令行形式運行程序
可以考慮運行系統的命令行解釋器(cmd.exe/command.com),然后指定要執行的命令并傳遞參數。
假設我們要執行命令“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是腳本內建的用以指示命令行解釋器位置的變量或宏。
B)/k 參數表示“執行字符串指定的命令但保留”,若改為 /c 則表示“執行字符串指定的命令然后終斷”。對此比較直觀(guān)的解釋是 /k 將在執行完命令后保留命令提示窗口,而 /c 則將在執行完命令之后關(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) ;只能打開(kāi)文件進(jìn)行操作,但看不到文件
; 檢查打開(kāi)的文件是否可讀
If $file = -1 Then
MsgBox(0, "錯誤", "不能打開(kāi)文件.")
Exit
EndIf
; 每次讀取一行文本,直到文件結束.
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)
聯(lián)系客服