autoit 3 send命令用法

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}")。

某些特殊按键必须用花括号括住才能发送:

注意,Windows 不允许模拟 "CTRL-ALT-DEL" 组合键!

Send 命令(无标志参数) 键击结果

{!} !

{#} #

{+} +

{^} ^

{{} {

{}} }

{SPACE} 空格

{ENTER} 主键盘区的 回车键

{ALT} ALT

{BACKSPACE} 或 {BS} 退格

{DELETE} 或 {DEL} 删除(DELETE)

{UP} 向上箭头

{DOWN} 向下箭头

{LEFT} 向左箭头

{RIGHT} 向右箭头

{HOME} HOME

{END} END

{ESCAPE} 或 {ESC} ESC键

{INSERT} 或 {INS} INS(Insert)

{PGUP} PageUp

{PGDN} PageDown

{F1} - {F12} 功能键

{TAB} TAB

{PRINTSCREEN} Print Screen key

{LWIN} 左徽标键

{RWIN} 右徽标键

{NUMLOCK on} NUMLOCK (on/off/toggle)(开/关/切换)

{CAPSLOCK off} CAPSLOCK (on/off/toggle)(开/关/切换)

{SCROLLLOCK toggle} SCROLLLOCK (on/off/toggle)(开/关/切换)

{CTRLBREAK} Ctrl+Break

{PAUSE} PAUSE

{NUMPAD0} - {NUMPAD9} 数字键盘上的 数字键

{NUMPADMULT} 数字键盘上的 乘号

{NUMPADADD} 数字键盘上的 加号

{NUMPADSUB} 数字键盘上的 减号

{NUMPADDIV} 数字键盘上的 除号

{NUMPADDOT} 数字键盘上的 点号

{NUMPADENTER} 数字键盘上的 回车键

{APPSKEY} Windows 应用程序键

{LALT} 左 ALT 键

{RALT} 右 ALT 键

{LCTRL} 左 CTRL 键

{RCTRL} 右 CTRL 键

{LSHIFT} 左 Shift 键

{RSHIFT} 右 Shift 键

{SLEEP} 系统休眠(SLEEP)键

{ALTDOWN} 按住 ALT 键直到发送 {ALTUP} 为止

{SHIFTDOWN} 按住 SHIFT 键直到发送 {SHIFTUP} 为止

{CTRLDOWN} 按住 CTRL 键直到发送 {CTRLUP} 为止

{LWINDOWN} 按住左徽标键直到发送 {LWINUP} 为止

{RWINDOWN} 按住右徽标键直到发送 {RWINUP} 为止

{ASC nnnn} 发送 ALT+nnnn 组合键

{BROWSER_BACK} 仅支持2000/XP:按下浏览器中的“后退”按钮

{BROWSER_FORWARD} 仅支持2000/XP:按下浏览器中的“前进”按钮

{BROWSER_REFRESH} 仅支持2000/XP:按下浏览器中的“刷新”按钮

{BROWSER_STOP} 仅支持2000/XP:按下浏览器中的“停止”按钮

{BROWSER_SEARCH} 仅支持2000/XP:按下浏览器中的“搜索”按钮

{BROWSER_FAVORITES} 仅支持2000/XP:按下浏览器中的“收藏夹”按钮

{BROWSER_HOME} 仅支持2000/XP:运行浏览器并转到主页

{VOLUME_MUTE} 仅支持2000/XP:切换系统静音状态

{VOLUME_DOWN} 仅支持2000/XP:减小系统音量

{VOLUME_UP} 仅支持2000/XP:增大系统音量

{MEDIA_NEXT} 仅支持2000/XP:在播放器中选择播放下一个轨道(影音媒体)

{MEDIA_PREV} 仅支持2000/XP:在播放器中选择播放上一个轨道

{MEDIA_STOP} 仅支持2000/XP:使播放器停止播放

{MEDIA_PLAY_PAUSE} 仅支持2000/XP:使播放器播放/暂停

{LAUNCH_MAIL} 仅支持2000/XP:运行邮件客户端程序

{LAUNCH_MEDIA} 仅支持2000/XP:运行播放器(Media player)

{LAUNCH_APP1} 仅支持2000/XP:运行用户程序1(我的电脑)

{LAUNCH_APP2} 仅支持2000/XP:运行用户程序2(计算器)

如果要发送 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则“按键”参数将被原样发送。如果某些文本是从变量里拷贝而来,而您又希望完全按原样发送这些文本的话,就应该使用这一设置。

例如,先打开 文件夹选项窗口(位于控制面板),然后请尝试执行下面这些语句:

Send("{TAB}") 切换到(焦点切换)下一个控件(按钮、复选框等)

Send("+{TAB}") 切换到上一个控件

Send("^{TAB}") 切换到下一个窗口标签

Send("^+{TAB}") 切换到上一个窗口标签

Send("{SPACE}") 可用来切换复选框的选中状态或点击某个按钮

Send("{+}") 通常用来选中某个复选框(如果它“确实是”复选框的话)

Send("{-}") 通常用来取消选中某个复选框

Send("{NumPadMult}") 完全展开 SysTreeView32 控件内显示的文件夹

组合 Alt 键使用可访问菜单项,请打开记事本窗口然后尝试执行下面这些语句:

Send("!f") 表示发送 Alt+f,这是打开记事本的文件菜单的快捷键,您还可以试试其它的!

Send("{DOWN}") 移动焦点到下一个菜单项

Send("{UP}") 移动焦点到上一个菜单项

Send("{LEFT}") 切换到左边的菜单或收缩子菜单

Send("{RIGHT}") 切换到右边的菜单或展开子菜单

如果您对快捷键(Alt+F4、PrintScreen、Ctrl+C等等)的重要性还不太了解,请查看 Windows 的帮助信息(按下热键 Win+F1即可)以获得关于快捷键的完整列表。


相关

SendAttachmode(选项), SendKeyDelay(选项), SendKeyDownDelay(选项), ControlSend


示例

Send("#r")

WinWaitActive("运行")

Send("notepad.exe{Enter}")

WinWaitActive("无标题 - ")

Send("现在的时间/日期是 {F5}") ;Send函数无法发送中文字符,这里仅为方便理解

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,265评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,078评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,852评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,408评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,445评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,772评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,921评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,688评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,130评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,467评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,617评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,276评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,882评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,740评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,967评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,315评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,486评论 2 348

推荐阅读更多精彩内容