在 Windows 上将右 Ctrl 键转换为 Ctrl 锁定键?

在 Windows 上将右 Ctrl 键转换为 Ctrl 锁定键?

我希望我的右键能像钥匙Ctrl一样工作Caps。当我按下它时,就好像我握着左键一样Ctrl。当我再次按下它时,它会释放锁。

有没有办法做到这一点,但只针对右键Ctrl(而不是左键)?

答案1

您可以使用自动热键执行此操作。基本切换脚本:

x = 0

RCtrl::
if x {
    SendInput {Ctrl up}
    x = 0
} else {
    SendInput {Ctrl down}
    x = 1
}
return
  1. 安装 Autohotkey

  2. 将脚本保存为.ahk文件

  3. 双击(打开)文件来运行.ahk

  4. 如果你想让它在启动时运行,将其添加到开始菜单启动文件夹

如果您希望它专门“按住”左控制键,则可以将SendInput Ctrls 替换为LCtrls。顺便说一句,它不区分大小写。


如果你不想安装 Autohotkey,这是一个独立的可执行文件以上内容是我使用 Autohotkey 的编译功能生成的。使用方法与上述相同.ahk。使用风险自负。


要在控制锁定时阻止左控制键:

x = 0

RCtrl::
if x {
    SendInput {Ctrl up}
    x = 0
} else {
    SendInput {Ctrl down}
    x = 1
}
return

*$LCtrl::
if (!x) {
    SendInput {LCtrl down}
}
return

*$LCtrl up::
if (x && !GetKeyState("Ctrl")) {
    SendInput {Ctrl down}
} else if (!x) {
    SendInput {LCtrl up}
}
return

是的……这变得很复杂。要使按住按键正常工作,必须同时挂接并传递按下和弹起事件。~不能使用非阻塞修饰符 ( ),因为我们需要在某些情况下进行阻塞。更糟糕的是,按下Alt+Ctrl会导致控制键被阻塞,但……释放时会出现问题。它GetKeyState会检查它是否在应该按下时弹起,如果不正确,则将其设置为按下。是的,很复杂。

释放左控制键时重置锁定状态可能更简单。好吧。

相关内容