使 shift 键的行为类似于箭头键

Sco*_*nce 7 remapping keyboard-layout autohotkey button-remapping windows-10

我有一台带有白痴设计的键盘的 Windows 10 笔记本电脑。他们试图补习班箭头键,他们不属于,其结果是,up arrow关键是之间right shift键和/键(美国键盘布局)。这是设计师能做的最愚蠢的事情之一,因为这意味着当我去按右 Shift 键时(大多数情况下),我最终会按up arrow。这是令人难以置信的烦人。

我找到了一个名为Sharp Keys的程序,它允许我重新映射键,使它们up arrow表现为 shift 并且right shift表现为up arrow. 现在,至少我可以打字了。但是,我现在已经失去了up arrow密钥的重要功能。向上箭头(现在在我的键盘上标记为“shift”)不会重复。所以,我不能只是按住键向上移动。相反,我必须反复敲击键。我该如何解决这个问题,让我的右移键表现得像向上箭头,而我的向上箭头键表现得像right shift

编辑

根据评论的建议,我安装了 AutoHotkey。我有以下脚本:

RShift::Up
Up::RShift
Run Code Online (Sandbox Code Playgroud)

我和以前有同样的问题。但是,由于 AHK 是一种脚本语言,是否可以使用它来更改重复行为?

Sco*_*nce 0

虽然 JJohnston2 的回答给了我部分解决方案,但我最终还是询问了其他几个地方并自己做了很多实验。这就是我最终得到的结果:

Up::RShift
*RShift::
    delay=400
    While GetKeyState("RShift", "P") {
        Send {Blind}{Up}
        Sleep %delay%    ; Set delay to taste
        delay=30
    }
    Return
Run Code Online (Sandbox Code Playgroud)

这解决了按键重复的问题并允许 Shift+Up 按预期工作。有两个悬而未决的问题我尚未解决,但它们的优先级足够低,因此我无论如何都会考虑解决这个问题:

  1. 竞争条件尚未解决。我尝试将第一次迭代放在循环之外,就像 JJohnston2 所做的那样,但它对我来说没有明显的效果。
  2. 所有这些问题的根本原因是系统似乎不重复按 Shift、Ctrl 或 Alt 键,尽管其他键会重复。所以,AHK 不能重复它从未见过的事情。由于我寻求帮助的每个人都没有遇到过这个问题,所以我的设置一定有什么奇怪的地方,但我根本不知道那可能是什么。