AutoHotkey(欧盟键盘):如何重新映射 LCtrl 同时保留 AltGr

AutoHotkey(欧盟键盘):如何重新映射 LCtrl 同时保留 AltGr

我搜索了过去的问题,但是我还没有找到一个解决方案来切换LAltLCtrlCapsLockLCtrl)同时完全保留AltGr,这对应于Ctrl+ Alt(或者可能是LCtrl+ RAlt?)。

这是最接近的问题,但我无法使用注册表,我的权限有限。 使用 AutoHotKey 切换 Ctrl 和 Alt 而不会弄乱 Alt-Tab 切换器?

相关内容: https://code.google.com/p/uawks/issues/detail?id=2

我正在使用以下任一简单脚本:

LAlt::LCtrl
LCtrl::LAlt

第二个:

LCtrl::CapsLock
CapsLock::LCtrl

每当我按下AltGr任何其他键时,就会出现卡住的情况,我不得不随机按下AltCtrl直到我可以再次书写。如果我使用第二个脚本,CapsLock 就会被激活!

我的键盘是瑞士键盘,有很多带有第三个符号的键,因此我需要经常AltGr重新映射每个键,这不是一个干净的解决方案。

更新

我刚刚发现,AltGr通过在之前发布的两个脚本末尾添加以下行可以完全解决问题,但我不明白为什么会发生这种情况。

<^>!::RAlt

AltGr为什么单独重新映射RAlt仍会产生常规的效果AltGr

答案1

1) 虽然这篇文章的逻辑很简单,但对于我们这些没有 AltGr 键盘的人来说,很难理解这篇文章的逻辑。无论如何,我代表我自己说话……为了便于理解,它可能有助于澄清你正在谈论哪两行脚本,然后列出你按下的键(以及按什么顺序),然​​后列出你得到的结果。然后列出下一个脚本、键和结果。或者其他人可能不需要这个,但即使我相信你列出了所有关键信息,我还是有点难以理解。

2) 您是否查看过帮助文件中的热键重新分配?我注意到您可能想要尝试两件事。首先是使用 * 作为修饰符。其次是使用“Up”触发上行以发送不同的上行(即,为不同的修饰符发送上行)。查看帮助文件中热键下列出的 LWin 重新定义:

*LWin::Send {LControl Down}
*LWin Up::Send {LControl Up}

3) 有时会卡住,当这种情况发生时,即使按键已经弹起,您也可以通过发送“向上”命令来解决这个问题。从技术上讲,这可能不需要,但有时它可以工作(有时则不行)。

4) 通过“查看”菜单查看按键历史记录列表可能会(也可能不会)有帮助。通常,您可以通过查看按键的处理顺序(即按键的列出顺序)以及按键是否由于列出的各种原因而被忽略来找出卡住或失败的原因。

5) 正如 LWin 重新定义示例所示,您可能希望使用“Send”或“SendInput”命令,以便在故障排除期间获得更大的灵活性(当然,如果您最终不需要它,您可以不用它并使代码更简洁,但这不会造成任何损害)。例如,使用 Send 命令可以轻松地将另一个字符或按键添加到单个热键重新分配上,然后查看按键历史列表中的触发顺序以查看它被按下以及按什么顺序。

如果我有其中一个键盘可以测试,我可能会采用您列出的两行示例之一,并将其​​转换为四行键重新分配,就像 LWin 重新分配示例一样,然后查看键历史记录中发生的情况。我可能还会添加一个暂停语句,以便及时捕捉到它,并能够查看执行暂停之前的击键历史记录,这样日志就不会显示任何被释放的修饰键。

我不知道这是否会起作用,但是这里是您可能为了调试目的而开始做的事情的概述。

*LAlt::Send {LCtrl Down}
*LAlt Up::Send {LCtrl Up}
*LCtrl Up::Send {LAlt Up}
*LCtrl::
     Send {LAlt Down}
     Pause   ; once the script is paused you can go look at Key History
 Return

相关内容