【问题标题】:How to make both Alt keys work same way如何使两个 Alt 键以相同的方式工作
【发布时间】:2013-02-06 21:25:53
【问题描述】:

我有一些在 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}

,但它并没有解决问题。

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

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

    RAlt::LAlt
    

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

    【讨论】:

    • 我刚刚发现这种解决方案不起作用的情况:映射^!b::MsgBox You pressed Ctrl-Alt+b 总是使用 LAlt 触发;如果你按 Ctrl 然后 RAlt 然后 b 什么都不会发生,尽管如果你先按 RAlt 然后按 Ctrl 然后 b 会起作用。有什么想法吗?
    • 我不明白这个。在我的系统上(使用 autoHotKey_L v1.1.09.01)我测试了这个: ^!b::MsgBox 你按下了 Ctrl-Alt+b !b::MsgBox 你按下了 Alt+b RAlt::LAlt 它可以双向工作,与先 Ctrl 和先用 RAlt
    • 通过您提供的三个映射,当我按 Ctrl 后跟 RAlt 和 b 时,我得到“您按 Alt+b”。我正在使用 autoHotKey v1.0.48.00,这是我找到的最新便携版本。
    • 我刚刚注意到您提到了“autoHotKeyL”而不是“autoHotKey”。我会试试看它是否能解决问题。
    • 我刚刚用 AutoHotkey_L v.1.1.09.02 测试了这个解决方案,当我按下 Ctrl 后跟 RAlt 和 b 时,我仍然得到“你按下 Alt+b” - 也就是说,相同的行为该 autoHotKey v1.0.48.00 呈现。有什么想法吗?
    【解决方案2】:

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

    这是我在 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+RAlt+b。结果:MsgBox B,由于重新映射而预期

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

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

    最后但并非最不重要。如果我按 Ctrl+RAlt+bRAlt+Ctrl+b。还有一点需要注意:我总是使用 LEFT Ctrl 键,而不是 RIGHT Ctrl 键。

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

    【讨论】:

    • 这是我丢失的部分:One more note: I always used the LEFT Ctrl key, not the RIGHT Ctrl key.。出于某种原因,我假设两个 Ctrl 都向系统发送相同的信号......包括RCtrl::LCtrl 使这成为现实。非常感谢您的帮助和耐心。
    • 您的答案从一开始就是正确的 - 我得到的结果与您报告的完全相同。我的无知导致了第二个问题,是你在最后一个笔记中找到了第二个答案=)
    猜你喜欢
    • 1970-01-01
    • 2019-10-24
    • 1970-01-01
    • 2011-05-12
    • 2019-05-27
    • 2016-09-18
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    相关资源
    最近更新 更多