问题描述
我想创建一个脚本,在按住Alt的同时按两次Q时会触发,但找不到正确的按键代码,有人能解释一下吗?
附注。我要将此快捷方式绑定到Ctrl+F12,我为其分配了Sogou IME以打开中文输入模式。
推荐答案
TL;DR
总而言之,即使我做了各种黑客攻击,让脚本正常工作,它也很可能在未来崩溃,这真的不值得麻烦。
经过几个小时的试验,目前的结论是Sogou IME使用Ctrl+F12不会触发绑定动作,即切换到中文输入模式,如果是通过Alt+[任何其他键]发送,如果是通过Ctrl+C等其他快捷键发送,则可以触发,这是非常不幸的。
最奇怪的是以下代码可以工作:
^c::Send !q
!q::Send ^{F12}
为了排除潜在的extra simulated keystrokes (Ctrl by default)影响,以下代码也可以工作:
^!q::Send ^{F12}
但以下不包括(在多台计算机上测试):
!q::Send ^{F12}
更新
经过多的努力,我确实得到了Alt+q打开中文输入模式的代码,不知道为什么:
!q::Send ^{F6}
^F6::Send ^{F7}
^F7::Send ^{F12}
但是因为我同时还需要使用Alt+q触发VSCode命令,所以我必须将上面的代码修改为:
~!q::Send ^{F6} ; with ~ prefixed
^F6::Send ^{F7}
^F7::Send ^{F12}
现在Alt+q确实触发了VSCode命令,但它不会打开中文输入模式...
最后,如果我后退一步,将VSCode命令绑定到Ctrl+C(只需^c::Send ^{F12}
就可以打开中文输入模式),我仍然必须在^c
前面加上~
,否则就不会触发VSCode命令,现在我又在重复这个循环...
在所有这些尝试之后,我不得不说搜狗输入法确定是否启用中文输入模式的逻辑非常不确定,使得启用中文输入模式的脚本非常不可靠。
总而言之,即使我做了各种黑客攻击,让脚本正常工作,它也很可能在未来崩溃,这真的不值得麻烦。