标准韩语键盘上的空格键两侧各有两个键(每边各一个),我想将它们重新映射为Control或Alt修饰键,这样我就可以使用比小指更强的手指进行交替操作了(我是Emacs用户)。
我猜问题在于它们似乎没有生成KeyUp事件,并且它们不像其他键一样重复。我用自动热键循环的方法得到了一个可怕的笨办法。我还用另一个非免费程序KeyManager做了类似的事情。我希望能有一些更高级的技巧或解决方法(AutoHotkey、驱动程序或其他方式)。
;Scan Code for Hanja Key
sc1F1::
Loop 10000
{
SetKeyDelay,-1
Send {Blind}{LCtrl DownTemp}
}
SetKeyDelay,-1
Send {Blind}{LCtrl Up}
Return
按住汉字键的键盘钩子输出:
你可以看到没有重复和弹起事件。
VK SC Type Up/Dn Elapsed Key Window
74 03F u 0.08 F5
19 1F1 d 0.66 Hanja
74 03F d 9.58 F5
更新:
尝试过的方法:
sc1F1 & t::Send {Blind}{LCtrl DownTemp}{t}{LCtrl Up}
结果:
按下 Hanja+t 后,热键触发,但是随后仅仅按下t就会再次执行相同的操作,LCtrl Up
似乎没有生效。
Abe的基于SetTimer
的重置方案也不错!感觉比我的原始代码更加优雅。然而,缺点是需要延迟-我必须调整我的输入速度以匹配延迟。
其他已测试的解决方案:
GetKeyState("vk19", "p")
在脚本加载和一个初始按键后始终报告按下状态。即使我已经释放了该键也不会改变这种状态。
KeyWait
也不能按预期工作。
sc1F1 up::traytip,, test
在按下/释放任意次数后均未产生托盘提示。