我希望我的 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 ,但没有区别。

有帮助吗?

解决方案

谢谢大家的回答。我无法使用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

或者,有一个GUI工具可以为您执行此操作 - 它被称为 SharpKeys 并且工作很好:点击

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

其他提示

正如PhiLho所指出的,Windows提供了一种通过注册表项 HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Keyboard Layout 重新映射任何密钥的方法。可以在扫描代码映射器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,002,00,00,00,38,00,38,e0,00,00,00,00

  1. 将以上代码保存在reg文件
  2. 在注册表中合并
  3. 重新启动电脑
  4. 现在检查
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top