autohotkey - 如何在自动热键中按 Ctrl + CapsLock = CtrlLock
问题描述
我想按Ctrl + Capslock
哪个会切换锁定Ctrl
状态。
例如,
如果我按Ctrl + Capslock
,那么如果我继续点击 chrome 上的谷歌搜索结果,每个结果都会在新的背景选项卡中打开,或者如果我想保存一个 pdf 文件,我只需按s
而不是Ctrl + s
如果我希望禁用此行为,或者换句话说,解锁Ctrl
键,我可以Ctrl + Capslock
再次按下。
换句话说,
Ctrl+Capslock
组合将使Ctrl
键始终被按下,而我没有实际按下它。重做组合Ctrl
再次取消按下。
我在这里看到了这一点,但使用了Ctrl
密钥本身。
我试过修改那个版本,但它不起作用
Hotkey, ^CapsLock, Lock
return
Lock:
GetKeyState, state, Control, T
if state = D
Send {Control Down}
else
Send {Control Up}
解决方案
问题是控制切换功能在用户仍保持控制时运行,因此该功能将始终将控制视为处于关闭状态。为了解决这个问题,我建议将“控制锁定”切换状态存储在一个变量中,并在执行该功能之前等待控制被物理释放。放在一起看起来是这样的。
#SingleInstance, force
crlock = false
^CapsLock::
KeyWait, control, u
IfEqual, crlock, false
{
Send, {Control Down}
crlock = true
}
else
{
Send, {Control Up}
crlock = false
}
Return
推荐阅读
- python - 概念问题:可变缓冲区分析大小取决于文件类型?
- vuetify.js - 新 vuetify API 的 Flex 列布局
- javascript - 按下提交按钮后,光标停留在某个输入字段
- flutter - 小部件的初始化以意想不到的方式工作
- quickselect - 使用三中位数的中位数进行快速选择
- java - 在导航视图中未显示评分栏第 5 次开始
- api - 无法通过旧版 API (TfsTeamProjectCollection) 使用 TFS 2018 进行身份验证
- php - Laravel:将数据从数据库/控制器传递到 RouteServiceProvider.php
- reactjs - 获取 offsettop 和 offsetheight 属性不会出错
- c# - 如何将 DataGridView 行分成许多块?