禁止 Shift 键覆盖 Numlock(或阻止 Shift 键覆盖 Numpad 键的 Numlock 并使用 Shift 作为 Numpad 0-9 修饰键)

禁止 Shift 键覆盖 Numlock(或阻止 Shift 键覆盖 Numpad 键的 Numlock 并使用 Shift 作为 Numpad 0-9 修饰键)

如果有人知道如何禁用/覆盖 Windows 中 Shift 键的功能,暂时使 Numlock 状态无效,以便数字键盘 0-9 键输出为其他键(insert、end、down、page down、left、clear、right、home、up、page up),我很乐意为解决这个问题付费。

原因:我有一个在 Mac 和 PC 上都使用的应用程序 (Reaper),而我在 Mac 上的应用程序中分配的许多快捷键在 PC 上根本不起作用,例如 Shift 和任何 Numpad 数字键(单独使用或与任何其他修饰键组合使用)。Mac 在应用程序中使用修饰键作为快捷键方面比 PC 好得多(包括所有硬编码的 win+key 快捷键)。

我被迫在工作中使用 PC,它给我带来了无数痛苦、折磨和沮丧。但这个小噩梦才是真正的噩梦。它已经困扰了我 2.5 年。我已经束手无策了。我可能已经花了几天(甚至几周)的时间尝试了这个问题的许多潜在解决方案,包括 AutoHotkey、EventGhost 和 Pulover 的 Macro Creator。但它们似乎都无法允许 Shift+Numpad 0-9 功能(或 Ctrl+Alt+Shift、Alt+Shift、Ctrl+Win+Shift 等)通过 Reaper(或任何其他应用程序)。Shift 键可以如上所述更改 Numpad 键输出,或者当与其他修饰键组合使用时,Shift 键将被删除为修饰键,因此只有其他修饰键与 Numpad 0-9 键组合时才会被识别。

我真的需要找到一种方法来在 PC 上使用我的所有 Shift(和任何其他修饰符)以及数字键盘 0-9 快捷键。我真诚地希望有人能找到解决这个令人沮丧的问题的方法。

编辑:为了完全清楚起见,我并不是在寻找/对这个问题的解决方法感兴趣。我希望找到一个真正的解决方案,删除 Windows PC 上的“Shift 键暂时覆盖 Numlock”功能-即使它需要 BIOS 或注册表破解、修改某些 Windows 系统文件或使用其他软件来实现。这是我感兴趣并愿意付费的解决方案。我希望能够像使用 Mac 一样将 shift+numpad(0-9) 快捷键发送到 PC 上的应用程序。感谢您提供的任何帮助,以了解如何实现这一点!

編輯2:以下 AHK 脚本可以运行,但是烦人的 Windows 操作系统“功能”——将 Shift+Numpad(0-9) 转换为 Numpad(Ins-PgUp)——仍然会搞乱输出 - 尽管快捷键来自 AHK 而不是物理键盘输入:

#If winActive("ahk_exe reaper.exe") 

+numpadEnd::
    send +{numpad1}
return

使用 AHK 脚本,单击 Shift+NumpadEnd,关闭 Numlock:

A0  02A     d   1.45    LShift
23  04F h   d   0.22    NumpadEnd
61  04F i   d   0.00    Numpad1
61  04F i   u   0.01    Numpad1
23  04F s   u   0.08    NumpadEnd
A0  02A     u   0.16    LShift

没有 AHK 脚本,单击 Shift+NumpadEnd,Numlock 关闭:

A0  02A     d   0.74    LShift
23  04F     d   0.22    NumpadEnd
23  04F     u   0.11    NumpadEnd
A0  02A     u   0.20    LShift

无论如何,REAPER仍然看到按下了相同的快捷键:Shift+End -不是Shift+NumpadEnd。因此,Shift+Numpad 快捷键仍会与我使用常规 home/end、PgUp/Down、箭头键和 Insert 绑定的其他快捷键发生冲突。

不幸的是,经过反复测试,这是仍然不能解决需要禁用烦人的 Windows 操作系统功能将 Shift+Numpad(0-9) 转换为相应的导航键(即 Shift 覆盖 Numlock)。

答案1

解决方法是,您可以在 NumLock 关闭的情况下使用数字键盘键,并使用 Autohotkey 脚本重新定义软件的快捷键。当 NumLock 关闭时,数字键盘键不受 Shift 的影响。

更新:

在 Reaper 中,问题在于,当您通过 GUI 设置定义按键组合时,您无法输入 Shift + Num 键组合。但我发现您可以导入/导出快捷键配置文件。“键映射...”->“导出快捷键映射...”将导出一个文本文件,该文件可以编辑,然后重新导入。在那里,您可以定义包括 Shift 键和数字键的组合。
例如,我添加了 2 个快捷键:

“Shift+Num 1”表示“水平缩小”命令,
“Shift+End”表示“水平放大”命令

第二条命令只是为了检查它是否与第一个组合冲突。因此,我创建了一个文本文件“test.ReaperKeyMap”,其中包含相应的定义:

KEY 5 97 1011 0
KEY 5 32803 1012 0

并在按键映射器中导入此文件。

现在要使“Shift+Num1”组合键起作用,请使用以下 AHK 脚本:

#If winActive("ahk_exe reaper.exe") 

+numpadEnd::
    send +{numpad1}
return

关闭 NumLock 后,这将运行“水平缩小”命令。使用此方法,您应该能够使用 Shift、Alt-Shift 等和 Num 键的所有其他组合,而不会占用其他组合键。

在 Windows 10 pro 64bit, v.1909 上使用 Reaper v 6.15 进行了测试,所有这些 USB 键盘都可以使用:

  • A4tech X7 G800V
  • Acer KU0906(101 键,通过 Fn 键在主部分有数字键盘)
  • 罗技 K120

AHK 历史记录(Numlock 关闭):

A0  02A     d   1.05    LShift          [unsaved project] - REAPER v6.15/x64 - EVALUATION LICENSE
23  04F h   d   0.17    NumpadEnd       
61  04F i   d   0.00    Numpad1         
61  04F i   u   0.00    Numpad1         
23  04F s   u   0.08    NumpadEnd       
A0  02A     u   0.30    LShift     

相关内容