作者s31364663 (木头猪)
看板EzHotKey
标题[AHK-] win模拟mac操作caps lock
时间Thu Jun 27 12:05:40 2024
前阵子同事抱怨他习惯mac的caps lock切换
我就找时间写了一支ahk打包给他
作业系统 windows 11
使用 Autohotkey 2.x版本
实现的逻辑如下:
1. shift + caps lock 切换大小写锁定
2.长按 caps lock 切换大小写锁定
3.短按 caps lovk 切换语言
4.禁用 shift 切换语言,需保留 shift 组合键功能(如打特殊符号)
姑且算是完成了这些规划的功能
之所以说姑且,是因为我在4的部分卡住了
原本写的逻辑是按shift 0.3秒就会触发按住,小於0.3秒则什麽都不做
但这麽做会在使用组合键的时候影响使用体验
例如快速的按 shift + / 输入 ? 时,就会因为按下的时间不足而失败
如果调低 0.3秒这个值,就会在短按时触发切换语言
最後我用了一个笨方法
利用 shift 触发任意组合键就不会触发切换语言的特性
让脚本走 shift + space 切换全形,再马上切回来
达到我要的效果,可这个过程看起来真的有点蠢
可能诱发强迫症使我夜不能寐
※ 考虑到给不会调整设定的人直接使用,暂不考虑修改 windows 内建切换语言的快捷键
想请益是否有更好的作法
谢谢Ezhotkey版
/------------------
$LShift::
{
; 禁用左 Shift 的单击功能,但保留组合键使用
if !KeyWait("LShift", "T0.03") {
; 如果超过 0.03 秒,允许作为组合键使用
Send("{LShift Down}")
KeyWait("LShift") ; 等待直到 LShift 释放
Send("{Space}")
sleep 150
Send("{Space}")
Send("{LShift Up}")
}
; 如果是短按,不做任何操作
Return
}
-----
Sent from
PttX on my Android
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 39.15.25.146 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/EzHotKey/M.1719461143.A.2A6.html
1F:→ jili1000: 第4点的确很难,我是一点想法也拿不出来。 06/28 01:26
2F:→ BSiC3290: 直接在Windows的设定中将转换模式切换键设为无? 07/03 08:54
3F:→ fossil313: ~shift::vkFF 这样试试看 07/10 23:00