Send:
作用:向激活窗口發送模擬鍵擊操作。
語法: send('按鍵'[,標志])
參數:
按鍵:要發送的按鍵序列。
標志:[可選參數] 更改程序處理“按鍵”的方式:
標志 = 0 (默認),按鍵序列中含有的特殊字符比如 + 和 ! 將被視為 SHIFT 和 ALT 鍵。
標志 = 1,按鍵將按原樣發送。
注意
關于使用 Send 函數的更多說明/技巧請查看附錄。AutoIt 可發送所有的 ASCII 碼及擴展 ASCII 碼字符(0-255),若要發送 UNICODE 編碼的字符則必須使用“ASC”選項加上您要發送的字符代碼(見下面的 {ASC})。
“Send” 命令的語法跟 ScriptIt 以及 Visual Basic 的 “SendKeys” 命令類似。字符序列將按原文發送,但下列字符除外:
'!'
表示告知 AutoIt 要發送一個 ALT 鍵擊動作,因此語句 Send("This is text!a") 的意思是按序發送按鍵 "This is text" 然后在按下"ALT+a"。
注意,有些程序對大小寫字符和 ALT 鍵相當挑剔,舉例來說,"!A" 可能會被認為不同于 "!a";第一個代表 ALT+SHIFT+A,而第二個則代表 ALT+a。如果拿不準的話最好使用小寫!
'+'
表示告知 AutoIt 要發送一個 SHIFT 鍵擊動作,因此語句 Send("Hell+o") 的意思是按序發送按鍵 "HellO"。Send("!+a") 表示發送 "ALT+SHIFT+a"。
'^'
表示告知 AutoIt 要發送一個 CONTROL 鍵擊動作,因此語句 Send("^!a") 的意思是發送按鍵 "CTRL+ALT+a"。
注意,有些程序對大小寫字符和 CTRL 鍵相當挑剔,舉例來說,"^A" 可能會被認為不同于 "^a";第一個代表 CTRL+SHIFT+A,而第二個則代表 CTRL+a. 如果拿不準的話最好使用小寫!
'#'
井號將發送一個 Windows 徽標鍵,因此語句 Send("#r") 將發送 Win+r,這將打開“運行”對話框。
您可以通過設置SendCapslockMode從而在 Send 函數開始操作前關閉大小寫切換鍵(大寫鎖,CAPS LOCK)并在完成操作后恢復。
但是,如果在 Send 函數開始執行的時候用戶就按住 Shift 鍵,那么發送的文本可能會是小寫字符。
一個解決辦法是在每次執行其它 Send 操作前使用語句 Send("{SHIFTDOWN}{SHIFTUP}")。
如果要發送 ASCII 字符 A 則參考下例(相當于 ALT+065,按住ALT鍵并在數字鍵盤上順序按下065)
Send("{ASC 065}")
(在使用兩位數的 ASCII 碼時必須在前面加一個 0,否則將使用 437號代碼頁)。
如果要發送 UNICODE 字符則輸入該字符代碼,例如下例將發送一個中文字符
Send("{ASC 2709}")
可參考下例重復發送某按鍵:
Send("{DEL 4}") ;連續4次按下 DEL 鍵
Send("{S 30}") ;發送30個字符“S”
Send("+{TAB 4}) ;連續4次按下 SHIFT+TAB
如果要按住(保持按下狀態)某個按鍵(通常用于游戲中)
Send("{a down}") ;按住按鍵 A
Send("{a up}") ;松開按鍵 A
如果要改變 capslock、numlock 和 scrolllock 鍵的狀態,可參考下例:
Send("{NumLock on}") ;打開 NumLock
Send("{CapsLock off}") ;關閉 CapsLock
Send("{ScrollLock toggle}") ;切換 ScrollLock 的狀態
如果要用變量來指定重復發送的次數,參考下例:
$n = 4
Send("+{TAB " & $n & "}")
如果要用變量來指定要重復發送的 ASCII 字符(比如 A),參考下例:
$x = Chr(65)
Send("{" & $x & " 4}")
大多數筆記本電腦的鍵盤上都會有一個特殊的 Fn 鍵,此鍵無法被模擬。
注意,若把標志參數的值設為1則“按鍵”參數將被原樣發送。如果某些文本是從變量里拷貝而來,而您又希望完全按原樣發送這些文本的話,就應該使用這一設置。