预期目标:在原本Caps Lock切换大小写状态的基础上,按下shift可以关闭大写状态,且不更换当前中英文状态。如:我在输入英文时,切换到了大写状态,在大写状态输入完毕后,按下shift将继续保持输入英文,而不是切换到中文。
当前设置:介绍一下我的个人配置,当前使用的是“KBLAutoSwitch”,关闭了搜狗输入法的shift切换中英文,热键配置 中打开了 左shift切换中英文(中文) ,目前也将WIN11设置中的高级键盘设置里的“要关闭Caps Lock” 设置为了 “按shift键” 但目前的问题是按下 Caps Lock键不再能关闭大写状态
个人尝试:我尝试了AHK(我的水平很差,全靠Chatgpt) 但在<“要关闭Caps Lock” 设置为了 “按shift键” >情况下,似乎是系统屏蔽了大写状态下的 Caps Lock按键的按下动作,只有抬起动作(使用按键测试网页的结果) 如果我只对按键抬起进行判断,那么就会与正常的开启大写动作起冲突 另一方面,我也尝试过更改当前的键盘映射,可以实现,但是Caps Lock按键映射到了其他的组合按键,相当于我的键盘上失去了一个按键,且更换电脑还需要额外的AHK脚本与其协同工作
总结:所以我的需求是,在<“要关闭Caps Lock” 设置为 “按shift键” >的情况下,帮我编写一个Caps Lock可以关闭大写状态的脚本,或者<“要关闭Caps Lock” 设置为 “按Caps Lock键” >的情况下,为我编写一个shift能关闭大写状态的脚本,且不与<当前"KBLAutoSwitch"的设置>冲突 或者 可以冲突,更改KBLAutoSwitch、搜狗输入法设置都可以,只要有能实现<按下shift可以关闭大写状态,且不更换当前中英文状态>
(更好的方式,更改一下KBLAutoSwitch,把这个功能内嵌到里面 )
完结:自己在KBLAutoSwitch.ahk里面更改了Toggle_CN_CNEN函数,在原本逻辑上添加了if GetKeyState(“CapsLock”, “T”) {SetCapsLockState, Off}else{}