autohotkey2.0 Send keys参数分析
Send Keys
Keys 是 Send 的参数,官方给出的解释:
Keys,类型: 字符串。要发送的按键序列. 然后对特殊字符(字符 ^+!#{})如何运行给了一个说明:
默认情况下(即既未使用 SendText,也未使用原始模式(Raw mode)或文本模式(Text mode)时),字符 ^+!#{} 具有特殊含义。字符 ^+!# 分别代表修饰键 Ctrl、Shift、Alt 和 Win。它们仅对紧随其后的下一个按键起作用。要单独发送对应的修饰键,请将该键的名称用大括号括起来。如果仅需按下(按住不放)或释放该键,请在键名后加上单词 "down" 或 "up",如下所示。
| 修饰符号 | 对应按键名称 | 按下操作 | 松开操作 | 示例代码 | 说明 |
|---|---|---|---|---|---|
^ |
{Ctrl} |
{Ctrl down} |
{Ctrl up} |
Send "^{Home}" |
按下 Ctrl+Home |
+ |
{Shift} |
{Shift down} |
{Shift up} |
Send "+abC" |
发送文本 "AbC" |
! |
{Alt} |
{Alt down} |
{Alt up} |
Send "!a"Send "!+a" |
按下 Alt+A 按下 Alt+Shift+A |
这段话有点不好理解的。太绕了。没有说明作者是如何思考的,面临什么问题,这样做是如何解决的。
keys 本身就是一个字符串,但其中 “^+!#{}” 直接被转义了,因为这样最方便,在 autohotkey 场景中,需要这样的情况最多。所以,突出重点,高频使用自然要用最便利的方式。
其他都好理解,关键要理解大括号{}的转义,手册在这里没有直接说,我是跳着看的,一时没看懂,看了下面的例子就明白了。
被大括号括起来的不再是字符本身,而是键盘上常用的特殊按键的名字,如:{Esc}、{Tab}、{CapsLock}等等,同样对 Ctrl 有效,就如例子所示,发送 Ctrl 按下:Send "{Ctrl down}"。
如果发送复制快捷键:Ctrl+v,表示方式:Send "^v"
总结:字符 ^+!#{} 在字符串内直接是特殊含义,但在{}内回归按键名称的本义。

浙公网安备 33010602011771号