2008-10-23 172 views
29

我想我的AltGr键的行为完全像左Alt
通常,我会用Autohotkey来做这类东西,但我对不同的解决方案持开放态度。如何将AltGr键全局映射到Alt键?

我尝试这样做:

LControl & RAlt::Alt 

而且AutoHotkey的显示有关Alt不被认可的动作错误。
然后我尝试下面的代码:

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

哪种类型的作品 - 我能够使用的AltGr键访问热键,但它仍然表现不同:当我按下并释放
Alt,当前程序中的第一个菜单项收到焦点。
按下并释放AltGr此脚本不做任何事情。

任何想法?这甚至有可能与Autohotkey? (重映射右Ctrl键左手兄弟姐妹是一块蛋糕)


注:我试图在代码转换 AltLAlt并没有什么区别。

回答

31

谢谢大家的回答。我无法使用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和工程桃色:
SharpKeys in action

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

+3

这个答案是错误的:SharpKeys不支持Alt Gr。 (https://sharpkeys.codeplex.com/workitem/10375) – Nye 2015-01-03 20:16:50

0

在AHK,你可以这样做:

LControl & RAlt::! 

或者

<^>!::! 
+0

对不起,但它不适用于我。 第一个示例返回“not recognized action”错误,第二个示例完全不起作用。 当然,我的设置可能有问题。它在你身边工作吗? – 2008-10-23 14:36:16

+0

我没有钥匙,但在AHK文档中看到这表明,<^>!是AltGr的符号。 右键单击TrayIcon - >帮助 - >热键 – 2008-10-24 15:07:38

3

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

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

第一种是独立按键(避免压住...),第二个用作组合(Alt + F等)。
它不是完美的,你不能做一个组合,就像按Ctrl + Alt键+牛逼,但也许这是足以让你的需求。

请注意,您可以使用注册表进行永久重映射。一个例子见this forum post。不知道它适用于像这样的复合键,但我想我应该提到它...

4

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

我用这种方法提上Caps LockWindows Key,因为我的键盘没有Windows Key,我不需要Caps Lock

+1

因为我不应该将软件添加到我的工作机器中,所以这非常有用。我使用Scan Code Mapper for Windows链接将Caps映射到Ctrl,然后在[“它是否值得交换Ctrl和Caps ...”]之前在现成的reg文件中找到脚本(http://stackoverflow.com/questions/127973 /是,它价值,交换的Ctrl和大写锁定换窗户用户,也就是说,不要使用-emacs的)。 – sage 2011-01-03 22:10:08

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(见上文)是更可靠的,但(如果你有管理员修改注册表访问)。

0

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

-2

Windows注册表编辑器5.00版

[HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \控制\键盘布局] “扫描码图”=十六进制: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. 现在检查