如何将AltGr键全局映射到Alt键?

我想我的AltGr键行为完全像左Alt
通常,我使用Autohotkey来做这种事情,但是我对不同的解决scheme是开放的。

我试过这个:

LControl & RAlt::Alt 

和Autohotkey显示错误关于Alt不被识别的动作。
然后我尝试了下面的代码:

 LControl & RAlt:: Send {Alt down} KeyWait LCtrl KeyWait Ralt Send {Alt up} return 

哪种工作 – 我能够使用AltGr键来访问热键,但它仍然有不同的performance:
当我按下并释放左侧的Alt时 ,当前程序中的第一个菜单项将获得焦点。
用这个脚本按下并释放AltGr什么也不做。

有任何想法吗? 这甚至可以用Autohotkey? (重新右键CtrlShift到左边的兄弟姐妹是小菜一碟)


注意:我试着在代码LAlt Alt切换到LAlt ,这没有任何区别。

谢谢大家的回答。 我无法使用AutoHotkey解决这个问题 – PhilLho的答案很接近,但我确实需要与左Alt键相同的行为。

但是, 注册表的东西实际上是我需要的。

将其另存为AltGR_to_LeftAlt.reg文件并运行它:

 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,38,00,38,e0,00,00,00,00 

或者,有一个图形用户界面工具可以帮助你 – 这就是所谓的SharpKeys ,它的功能非常强大 :
SharpKeys在行动

哦,不要忘记重新启动或注销 – 直到那时才会起作用!

正如PhiLho指出的那样,Windows提供了一种通过注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout重新映射任意键的方法。 Scan Code Mapper for Windows可以找到基本的概述。 更好的描述可能是扫描码映射或更改键值的答案 。

我正在使用这种方法将Windows Key放在Caps Lock ,因为我的键盘没有Windows Key而且我也不需要Caps Lock

通过结合两个热键,我得到了一个体面的行为:

 LControl & RAlt::Send {Alt} RAlt::Alt 

第一个是独立按键(避免压住…),第二个用作组合(Alt + F等)。
这不是完美的,你不能像Ctrl + Alt + T组合,但也许它已经足够满足你的需求。

请注意,您可以使用注册表进行永久重映射。 看到这个论坛帖子为例。 不知道它适用于像这样的复合键,但我想我应该提到它…

这对我工作:

 LControl & *RAlt::Send {LAlt Down} LControl & *RAlt Up::Send {LAlt Up} 

而这个映射到Windows键:

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

尽管使用SharpKeys(见上文)进行注册表修改是更可靠的(如果你有管理员权限的话)。

在AHK,你能做到:

 LControl & RAlt::! 

要么

 <^>!::! 

如果你想在全局映射这个密钥,并且不需要为每次更改(但是一次)都重新启动系统,则可能需要为此编写一个键盘过滤器驱动程序。 看这里

Windows注册表编辑器版本5.00

[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Keyboard Layout]“Scancode Map”= hex:00,00,00,00,00,00,00,00,02,00,00,00,38,00,38,e0 ,00,00,00,00

  1. 将上面的代码保存在reg文件中
  2. 将它合并到注册表中
  3. 重启你的电脑
  4. 现在检查