0

我有一些在 Windows XP 上使用 Alt 键的映射。虽然它们可以很好地使用左 Alt 键,但它们不能使用右 Alt 键。

例如,当我按下 right_Alt+b 时,下面的映射什么也不做,而当按下 left_Alt+b 时它显示一个消息框。

  !b::MsgBox You pressed Alt+b.

我想让两个 Alt 键以相同的方式工作并触发上面的映射。

下面的映射确实适用于右 Alt 键,但不适用于左 Alt 键:

  <^>!b::MsgBox You pressed right Alt+b.

一种解决方法是复制所有包含 alt 键的映射,但这会显着增加某些脚本的大小。此外,我发现在某些情况下它不起作用。进一步调查表明,正确的 alt 键有一个奇怪的行为。在仅包含以下映射的脚本中,

  ^!b::MsgBox You pressed Ctrl+Alt+b.

, 按 right_Alt+b 时显示消息框。

我试图将右 Alt 映射到左 Alt,

<^>!::!

或者

<^>!::Send {ALT}

,但并没有解决问题。

4

2 回答 2

2

您提到您尝试将 Right-Alt 映射到 Left-Alt,但没有提到您是如何做到的。无论如何,当我使用这个时:

RAlt::LAlt

MsgBox 你按下了 Alt+b。当我按 Right-Alt+b AND Left-Alt+b 时执行。您能说出您是如何尝试映射两个 Alt 键的吗?

于 2013-01-17T17:22:29.463 回答
0

由于更好的格式选项,我写此评论作为答案。

这是我在 AutoHotKey_L (1.1.09.01) 中使用的脚本,在常规 AutoHotKey 中应该可以正常工作:

RAlt::LAlt
<^>!b::MsgBox, A You pressed right Alt+b.
^!b::MsgBox, B You pressed Ctrl+Alt+b.  

测试 1:按下Ctrl+ LAlt+ b。结果:MsgBox B,正常行为测试2
:按下Ctrl++ 。结果:MsgBox B,由于重新映射而预期 RAltb

注释掉;^!b::MsgBox, B...并再次测试。测试 3 :
按下Ctrl++ 。结果:没有,正如预期的那样 RAltb

注释掉;RAlt::LAlt并再次测试:测试
4:按下Ctrl++ 。结果:MsgBox A,预期因为不再重新映射。RAltb

最后但并非最不重要的。Ctrl如果我按+ RAlt+bRAlt+ Ctrl+ ,行为没有区别b。还有一点需要注意的是:我总是使用 LEFTCtrl键,而不是 RIGHTCtrl键。

你没有得到这些结果吗?
或者,当您RAlt等于时,您是否期待不同的结果LAlt

于 2013-02-06T12:57:23.487 回答