Autohotkey + 自定义拉丁布局 + 非拉丁布局

Autohotkey + 自定义拉丁布局 + 非拉丁布局

这个问题 VK 虚拟键和 ScanCodes 都无济于事。
自定义拉丁布局是默认输入系统。

从自定义拉丁布局切换到非拉丁布局时,在非拉丁模式下,Autohotkey 会“认为”它现在使用的是美国国际布局,而不是自定义拉丁布局。因此,按键会混淆,它们现在位于键盘上的其他地方。按键仍然有效,但它们现在位于键盘的其他按钮上...

有没有简单的方法可以解决这个问题,比如更改 Autohotkey 程序的一些注册表项,以便无论采用什么布局,它都可以继续使用自定义拉丁布局?

Autohotkey 使用哪些 Windows dll?

答案1

您可以尝试简单地设置两个不同的热键和热字符串集,每个布局一个,并使用#If 使其中一个集成为活动集,这是从下面的 AutoHotkey 论坛复制的一个示例。

; question: http://autohotkey.com/board/topic/150272-allow-script-to-run-only-with-one-keyboard/
; code from: http://forum.script-coding.com/viewtopic.php?id=7396
#If (GetKeyboardLayout("A") = 4105) ; 4105 = 0x1009 https://msdn.microsoft.com/en-us/library/aa912040
; your hotkeys here
#If

GetKeyboardLayout(ByRef window)
{
    return DllCall("GetKeyboardLayout", "UInt", DllCall("GetWindowThreadProcessId", "Int", WinExist(window), "Int", 0), "UShort")
}

相关内容