【发布时间】:2012-08-09 02:41:37
【问题描述】:
标准韩语键盘上的空格键旁边有两个键(每侧一个),我想将它们重新映射为 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}
结果:
按汉字+t后,热键触发,但随后按ONLY t 单独执行相同的操作。 LCtrl Up 似乎没有出现。
Abe 基于SetTimer 的重置虽然不错!感觉就像我的原始代码的一个更优雅的版本。但是,问题在于延迟 - 我必须调整输入速度以匹配延迟。
其他经过测试的解决方案:
GetKeyState("vk19", "p") 总是在脚本加载和第一次按下后报告 PRESSED。它永远不会打破这种状态——即使在我释放密钥很久之后。
KeyWait 也无法按预期工作。
sc1F1 up::traytip,, test 在任意次数的按下/释放后也不会产生托盘提示。
【问题讨论】:
-
始终使用来自ahkscript.org的AutoHotkey(当前版本,新官网)!来自 autohotkey.com 的 AutoHotkey 已过时,使用它运行脚本时可能会遇到一些问题!此外,如果您在获取 AutoHotkey 文档中未列出的特殊键的名称时遇到任何问题,请查看以下答案:stackoverflow.com/questions/24921492/…
标签: windows keyboard autohotkey