我希望我的 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
,但没有区别。
答案 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:
哦,不要忘记重启或注销 - 直到那时它才会起作用!
答案 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