47

我希望我的AltGr钥匙的行为与 left 完全一样Alt通常,我用Autohotkey
做这种事情,但我对不同的解决方案持开放态度。

我试过这个:

LControl & RAlt::Alt

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

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

哪种有效 - 我可以使用该AltGr键访问热键,但它的行为仍然不同:
当我按下并释放 leftAlt时,当前程序中的第一个菜单项获得焦点。
用这个脚本按下和释放AltGr没有任何作用。

有任何想法吗?这甚至可以使用 Autohotkey 吗?(重新映射左右Ctrl兄弟Shift姐妹是小菜一碟)


注意:我尝试在代码中切换AltLAlt但没有任何区别。

4

7 回答 7

53

谢谢大家的回答。我无法使用 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并且工作得很好:
SharpKeys 在行动

哦,别忘了重启或注销——在那之前它不会工作!

于 2009-01-20T10:54:45.943 回答
8

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

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

于 2008-12-28T23:37:40.173 回答
3

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

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

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

请注意,您可以使用注册表进行永久重新映射。有关示例,请参见此论坛帖子。不确定它是否适用于像这样的复合键,但我想我应该提到它......

于 2008-10-23T16:16:02.407 回答
3

这对我有用:

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

这用于将其映射到 Windows 键:

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

不过,使用 SharpKeys(见上文)修改注册表更可靠(如果您具有管理员访问权限)。

于 2010-06-20T13:48:30.490 回答
0

在AHK,你能做到:

LControl & RAlt::!

或者

<^>!::!
于 2008-10-23T13:30:05.970 回答
0

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

于 2012-10-07T19:11:49.123 回答
-1

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. 现在检查。
于 2014-11-08T13:21:55.783 回答