跳到主要内容

模拟按键B(参数)

文本向当前窗口发送按键序列。内容可以来自变量或插值,适合动态组合。固定快捷键用模拟按键A(录入)

当前模块定义

sys:sendKeys基础Action
标准模块
输入 1 · 输出 0

输入参数

  • 按键序列keysText可选

    要发送的按键序列,使用C#语言SendKeys.Send()语法,具体请参考教程文档。

    填写 输入或变量

概述

把一段 SendKeys 字符串发给前台窗口。和 A 的差别:

  • A(录入):在步骤里录制或点选一组固定按键。
  • B(参数):按键写在文本里,可以 {变量} 插值,也可以和其他步骤拼出不同序列。

内部使用 .NET 的 SendKeys.SendWait(Quicker 做了兼容处理)。语法与 Microsoft 文档 一致。

模拟按键B(参数)

发送按键和文本
按键序列
^c
要发送的按键序列,使用C#语言SendKeys.Send()语法,具体请参考教程文档。
模拟按键B(参数)Ctrl+C

参数说明

按键序列:要发送的字符串。留空则不发送。软件里可点参数右侧工具从键盘选择;文档预览是普通文本框。

模拟按键B(参数)

发送按键和文本
按键序列
Hello~Next line
要发送的按键序列,使用C#语言SendKeys.Send()语法,具体请参考教程文档。

语法

要点

写法含义
^Ctrl
+Shift
%Alt
普通字母、数字小写,如 ^c 表示 Ctrl+C
{键名}特殊键,见下表
{键名 次数}重复。键名和次数之间有一个空格,如 {LEFT 10}

不支持 Win 键,以及 F17–F24、媒体键等。

普通字符与转义

普通字符按原样发送:a 发 a,abc 发三个字符。

这些字符有特殊含义,要发字面量时必须包在大括号里:+ ^ % ~ ( ) 分别写成 {+} {^} {%} {~} {(} {)}[ ] 本身无特殊含义,但仍要写成 {[} {]}。字面量的大括号写成 {{}{}}

特殊键

按键代码
Win底层 API 不支持
Backspace{BACKSPACE}{BS}{BKSP}
Break{BREAK}
Caps Lock{CAPSLOCK}
Delete{DELETE}{DEL}
{DOWN}
End{END}
Enter{ENTER}~
Esc{ESC}
Help{HELP}
Home{HOME}
Insert{INSERT}{INS}
{LEFT}
Num Lock{NUMLOCK}
Page Down{PGDN}
Page Up{PGUP}
Print Screen{PRTSC}(预留,通常无效)
{RIGHT}
Scroll Lock{SCROLLLOCK}
Tab{TAB}
{UP}
F1–F16{F1}{F16}
小键盘 + − × ÷{ADD} {SUBTRACT} {MULTIPLY} {DIVIDE}

组合与分组

要在按住 Shift / Ctrl / Alt 的同时按其他键,把修饰符写在前面:

代码含义
^cCtrl+C
+pShift+P
%pAlt+P
^+sCtrl+Shift+S
+(ec)按住 Shift,依次按 E、C
^(kc)按住 Ctrl,依次按 K、C
^kc先 Ctrl+K,松开后再按 C

大小写可能影响结果(^s^S 不一定一样)。改完后请在目标软件里实测。

示例

代码效果
^pCtrl+P
Hello~New Line输入 Hello,回车,再输入 New Line
中文字符按字符发送中文(更易受输入法影响)
{LEFT 10}← 十次
{h 10}H 十次

限制与排障

  • 可能受输入法影响。效果不对时,先切到英文,或在前面加输入法状态切到英文。
  • 发送前确保目标窗口已就绪;必要时在前后加等待时间
  • 不支持鼠标按键,也不支持 Win 键。
  • 语法无效时步骤失败,提示「发送按键出错。」加具体原因。
  • 需要不受输入法影响的纯文本,用多步骤输入input:
  • 只要一组固定快捷键,用模拟按键A(录入)
  • 要单独按下或抬起某个键,用按键操作

相关链接

更新于