个人觉得:
更高频使用,不想每次都按 shift+;来输出:
1
infoscope 327 天前 via iPhone
PowerToys 里有改键工具
|
2
Mithril 327 天前 1
其实软件的话,就两种方法
要么 hook 类的,比如 PowerToys 。但有的软件会顶掉你的 hook ,比如 mstsc 。 另外就是驱动级的,比如 https://github.com/cajhin/capsicain 这类的。虽说他们用的驱动也是签过名的,但这种非常底层的映射也有可能被某些程序视为恶意软件。 最好用的,找个支持硬件改键的键盘。有的键盘固件支持这种功能,之前大 F 的某些款甚至还带跳线开关,不过开关只能映射几个键。 自己选个方案,随便找找就行了。 |
3
crazyweeds 326 天前
autohotkey 应该非常简单,曾经用它直接换了键盘布局。。在一些场景下会失效,比如 qq 密码输入框,大概率是不行的。
|
4
loginv2 326 天前
楼上几位可能没有自己试过这个问题,楼主估计试过,这个问题我感觉并不好写,难点以上个 shift 和单独按键这俩事件不能冲突,另一个是;是关键字,需要处理转义,反正我写了半天是没成功,要么只有一个好使,要么就全都失灵
给楼主另一个思路 ,单击输入 冒号,双击输入分号 $`;:: if pressesCount > 0 ; > 0 说明 SetTimer 已经启动了,按键次数递增 { pressesCount += 1 return } ;否则,这是新一系列按键的首次按键。将计数设重置为 1 ,并启动定时器: pressesCount = 1 SetTimer, WaitKey, 400 ;在 400 毫秒内等待更多的按键。 return WaitKey: SetTimer, WaitKey, off if pressesCount = 1 ;该键已按过一次。 { Gosub singleClick } else if pressesCount = 2 ;该键已按过两次。 { Gosub doubleClick } ;不论上面哪个动作被触发,将计数复位以备下一系列的按键: pressesCount = 0 return singleClick: send : return doubleClick: send {;} return |
5
loginv2 326 天前
不熟悉 ahk 语法,如果有大佬实现了楼主的想法,非常好奇是怎么实现的
|
6
weijancc 326 天前
@loginv2 #5 不用那么复杂的, ahk 可以配置不触发脚本内定义的逻辑, 用三行 ahk 就能实现楼主需求.
```ahk #UseHook on `;::SendInput, : :::SendInput, `; ``` |
7
tyrone2333 326 天前
我也一直在找对调的方法-- win 上没实现, mac 用 Karabiner 换键位倒是很简单
|
8
sankemao 326 天前 1
$`;::Send `:
$+`;::Send `; |
9
Dganzh OP 试了 8 楼的,可以了。
感谢大家! |