问题描述
考虑以下分配:
当我输入 -
后跟一个 key
时,结果是 Ctrl-key
。这适用于普通键。
但是当key是空格的时候就不行了。
知道为什么会这样吗?以及如何修复代码?
-::
Input,key,L1,{LCtrl}
send,^{%key%}
return
编辑。
尝试运行上面的脚本一个程序,它有 Ctrl-Space 作为快捷方式,看看它不起作用。事实上,如果您按 -
后跟 Space
,脚本假定调用 Ctrl-Space
但事实并非如此。例如:
- 在 Microsoft Excel 或 Libreoffice Calc 中,Ctrl-Space 可以选择当前列。
- 在 Emacs 中,Ctrl-Space 保留用于设置标记。
解决方法
改用 SendInput
。
在 Excel 中测试以模拟 ^a、^x、^v、^space
-::
Input,key,L1,{LCtrl}
SendInput,^%key%
Return
如果您想处理“特殊”键,请使用此语法将这些键添加到结束键列表中
Input [,OutputVar,Options,EndKeys,MatchList]
然后查看按下的是哪个结束键
在 Firefox 中测试以模仿 ^PgDn、^PgUp
Input,{LCtrl}{PgUp}{PgDn}
If (ErrorLevel = "EndKey:PgUp") {
SendInput ^{PgUp}
}
Else If (ErrorLevel = "EndKey:PgDn") {
SendInput ^{PgDn}
}
Else If (ErrorLevel = "EndKey:LCtrl") {
Return ;assumed you just want to abort input with the control key
}
Else {
SendInput,^%key%
}
Return