我希望我的右键能像钥匙Ctrl一样工作Caps。当我按下它时,就好像我握着左键一样Ctrl。当我再次按下它时,它会释放锁。
有没有办法做到这一点,但只针对右键Ctrl(而不是左键)?
答案1
您可以使用自动热键执行此操作。基本切换脚本:
x = 0
RCtrl::
if x {
SendInput {Ctrl up}
x = 0
} else {
SendInput {Ctrl down}
x = 1
}
return
安装 Autohotkey
将脚本保存为
.ahk
文件双击(打开)文件来运行
.ahk
它如果你想让它在启动时运行,将其添加到开始菜单启动文件夹
如果您希望它专门“按住”左控制键,则可以将SendInput
Ctrl
s 替换为LCtrl
s。顺便说一句,它不区分大小写。
如果你不想安装 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
会检查它是否在应该按下时弹起,如果不正确,则将其设置为按下。是的,很复杂。
释放左控制键时重置锁定状态可能更简单。好吧。