微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 autohotkey deos 不发送 Ctrl-Space,其中 Space 是输入

如何解决为什么 autohotkey deos 不发送 Ctrl-Space,其中 Space 是输入

考虑以下分配: 当我输入 - 后跟一个 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。