自动热键 Ctrl+Shift - Zbrush/Photoshop

自动热键 Ctrl+Shift - Zbrush/Photoshop

我一直在使用 Autohotkey 来重新映射 CG 软件(主要是 Zbrush 和 Photoshop)中的按键,以使它们更加适合左撇子。

本质上,我将 Numpad 键重新映射到程序中无法更改的键(Ctrl、Alt、Shift 等)。这样,我就可以用左手使用我的绘图板笔,并使用 Numpad 访问 Ctrl、Alt 等,这比将整个键盘向右偏移要方便得多。

无论如何,这是我的脚本:

 #IfWinActive, ahk_class ZBrush

 #MaxHotkeysPerInterval 200



 NumPad1::Alt

 Numpad2::LControl

 Right::Shift

 up::Space

 return

非常简单,但自从我几年前创建它以来,它就一直存在一个错误。本质上,当我按住 Numpad2+Right(Ctrl+Shift)并释放 Numpad2 时,程序的行为就像我仍在按下它一样。快速按下 Numpad2 会将其恢复正常,但这非常烦人。以下是一些图片,可以更好地说明该问题:

在此处输入图片描述

你知道为什么会发生这种情况吗?我不是程序员,所以我肯定需要一些帮助。

答案1

当我在 Numpad2 之前释放 Right 键时,问题似乎不会发生。就好像按下 Right (Shift) 键会阻止 Numpad2 (Ctrl) 释放一样...

您看到的问题是由于数字键盘被 改变而造成的⇧Shift。按下⇧Shift类似于切换NumLock键,但效果更复杂且不明显。

例如,按下Numpad-4将产生以下结果:

          │ Num On │ Num Off
──────────┼────────┼───────────
Shift Off │   4    │    ←
──────────┼────────┼───────────
Shift On  │   ←    │ Shift + ←

因为您正在重新映射到并将⇧Shift其与数字键盘上的键组合使用,所以您得到的交互使 AutoHotkey 变得复杂,并因其意外的结果而让您感到困惑(很可能是逻辑上正确,但肯定是出乎意料和不受欢迎的结果)。

尝试将您的辅助密钥更改为Numpad-2其他密钥不是修改为⇧Shift,例如K。您会注意到,您不再会得到意外的结果。

这种行为发生在键盘控制器中,而不是软件中,因此不幸的是,如果您需要用作⇧Shift修改器,则不能使用数字键盘键进行像这样的复杂重新映射。

一种选择是使用编辑块或未被修改的数字键盘键⇧Shift(数学运算符、Numpad-5Numpad-Enter)。

另一种选择是编写一个更复杂的脚本,创建一个键盘挂钩来检查较低级别的键,以便它可以检查键是否⇧Shift被按下,然后根据需要进行补偿。


(不久前,我在编写一个 Unicode 输入程序时就遇到了这个问题。我试图让它支持某些字符的移位键,但修改却把事情搞砸了。我最终采取了后一种建议,编写了一个复杂的脚本,但它令人沮丧、头晕目眩,最终还是受到了一些限制。)

答案2

哇!很棒的回复!快速而准确。非常感谢。我没有意识到这些键被 Shift 修改了,导致我出现这种烦人的行为。问题是我已经习惯了这个 Numpad2 重新映射,以至于我无法承受改变它,除非经过数周的心理运动再适应 ^^

我设法通过将 NumpadDown 重新映射到 Ctrl 来绕过这个问题 ^^ 现在效果很好!

NumPad1::Alt

Numpad2::Ctrl

NumpadDown::Ctrl

Right::Shift

up::Space

    return

非常感谢您指出问题的根源。这个问题困扰了我好几年。

相关内容