最近频繁使用 Codex,发现微信语音输入成本很低很方便,但懒得伸手按键盘,故给一个人体工学鼠标的两个侧键重新安排了用途,顺便分享一下
用AI润色了基本功能,故以截图放出


代码如下:
#Requires AutoHotkey v2.0
#SingleInstance Force
MouseVoiceInputActive := false
MouseVoiceTapThresholdMs := 250
OnExit(ReleaseMouseVoiceInput)
; 将 Endfield.exe 改成需要排除的程序进程名。
; 也可以删除两组 #HotIf,让映射在所有程序中生效。
#HotIf !WinActive("ahk_exe Endfield.exe")
; 鼠标 4 号键:
; 短按 Enter,长按立即保持 Win+Shift。
*XButton1::HandleMouseVoiceInput()
; 鼠标 5 号键:Backspace。
*XButton2::SendInput "{Backspace}"
#HotIf
HandleMouseVoiceInput() {
global MouseVoiceInputActive, MouseVoiceTapThresholdMs
if MouseVoiceInputActive
return
MouseVoiceInputActive := true
pressedAt := A_TickCount
SendInput "{LWin down}{LShift down}"
; 等待物理侧键松开,避免切换窗口时漏掉松开事件。
KeyWait "XButton1"
heldMs := A_TickCount - pressedAt
if heldMs < 0
heldMs += 0x100000000
ReleaseMouseVoiceInput()
if heldMs <= MouseVoiceTapThresholdMs
&& !WinActive("ahk_exe Endfield.exe")
SendInput "{Enter}"
}
ReleaseMouseVoiceInput(*) {
global MouseVoiceInputActive
if !MouseVoiceInputActive
return
SendInput "{LShift up}{LWin up}"
MouseVoiceInputActive := false
}
手工补充几点:
1、如果其他软件会响应非常短的 Win + Shift 脉冲,这种“长按零延迟”方案可能不适合,需要改回等待阈值后再触发长按
2、PowerToys 录不到标准鼠标侧键,AHK 才可以用 XButton1、XButton2,当然也有一个软件叫“X-Mouse Button Control”应该可用,不过楼主没有尝试