这是我的代码:
[::
Send [
Input, Char, T2 L1
if Char = a
{
Send â
return
}
Send %Char%
return
当我输入[
时a
,它的行为正常并产生â
。但是,当我输入[
时p
,字符[
没有被打印出来。问题在于第二行 ( Send [
),其中[
的字符被重新映射。
我尝试了以下操作但没有成功:
Send `[
Send {[}
[
即使正在重新映射,我也想打印。
答案1
用作$
热键前的修饰符,即$[::
。
作为AHK 文档状态:
这通常仅在脚本使用 Send 命令发送组成热键本身的键时才是必要的,否则可能会导致其自行触发。$ 前缀的确切行为因操作系统而异:
在 Windows NT4/2k/XP 或更高版本上:$ 前缀强制使用键盘钩子来实现此热键,其副作用是阻止 Send 命令触发它。$ 前缀相当于在此热键定义上方的某处指定了 #UseHook。
在 Windows 95/98/Me 上:热键在其线程执行期间被禁用,之后重新启用。作为副作用,如果 #MaxThreadsPerHotkey 设置为高于 1,则对于此类热键,其行为将如同设置为 1 一样。