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

时间:2008-10-23 13:06:04

标签: windows keyboard-shortcuts autohotkey

我希望我的 AltGr 键的行为与左 Alt 完全相同。
通常,我使用Autohotkey来做这种事情,但我对不同的解决方案持开放态度。

我试过了:

LControl & RAlt::Alt

并且Autohotkey显示有关Alt未被识别的操作的错误 然后我尝试了以下代码:

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

哪种工作 - 我可以使用 AltGr 键来访问热键,但它仍然表现不同:
当我按下并释放左 Alt 时,当前程序中的第一个菜单项将获得焦点。
使用此脚本按下并释放 AltGr 不会执行任何操作。

有什么想法吗? Autohotkey甚至可以实现这一点吗? (将 Ctrl Shift 重新映射到他们的左边兄弟姐妹是件小事)

<小时/> 注意:我尝试在代码中将Alt切换为LAlt,但没有区别。

7 个答案:

答案 0 :(得分:44)

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

然而,registry thing实际上正如我所需要的那样工作。

将其另存为 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

或者,有一个GUI工具可以为您执行此操作 - 它被称为SharpKeys并且可以使用peachy:
SharpKeys in action

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

答案 1 :(得分:7)

正如PhiLho所指出的,Windows提供了一种通过注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout重新映射任何密钥的方法。可以在Scan Code Mapper for Windows找到基本概述。更好的描述可能是Answers to Scancode Mapping or Changing Key Values

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

答案 2 :(得分:3)

我通过组合两个热键获得了不错的行为:

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

第一个用于独立按键(避免按住它...),第二个用作组合( Alt + F 等)。
它并不完美,你不能像 Ctrl + Alt + T 这样的组合,但也许它足以满足你的需求。

请注意,您可以使用注册表进行永久性重新映射。有关示例,请参阅this forum post。不确定它是否适用于像这样的复合键,但我想我应该提一下......

答案 3 :(得分:2)

这对我有用:

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

这用于将其映射到Windows密钥:

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

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

答案 4 :(得分:0)

在AHK,你能做到:

LControl & RAlt::!

或者

<^>!::!

答案 5 :(得分:0)

如果要全局映射此键并且无需为每次更改重新启动系统(但只需一次),则可能需要为此编写键盘过滤器驱动程序。看here

答案 6 :(得分:-2)

Windows注册表编辑器版本5.00

[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Keyboard Layout] “扫描码地图”=十六进制:00,00,00,00,00,00,00,002,00,00,00,38,00,38,e0,00,00,00,00

  1. 将以上代码保存在reg文件
  2. 在注册表中合并
  3. 重新启动电脑
  4. 现在检查