关于使用脚踏板切换中英输入法的方案详述

受你的启发,我改了一个自我感觉更顺畅的方法,按输入法切合键是切换输入法,连按两次是拼音转中文,并且用正则处理了汉字和字母夹杂的情况

SetCapsLockState, AlwaysOff

; capslock 按一次是切换中英文,按两次是输错了重新输入。
CapsLock::
	if Caps_presses > 0
	{
		Caps_presses += 1
		SetTimer Capskey, 200
		return
	}
	Caps_presses = 1
	SetTimer Capskey, 200
return

Capskey:
	SetTimer Capskey, off
	if Caps_presses = 1
	{
		SendInput,+
	}
	else if Caps_presses = 2
	{
		tocorrect()
	}
	Caps_presses = 0
return

tocorrect() 
{
	SendInput, +{Home}
	Sleep, 10
	SendInput, ^c
	Sleep, 10
	SendInput,+
	getenpos := RegExMatch(Clipboard, "\w+$") ;获得最后出现的一串英文字符的出现位置
	Clipboard1 := SubStr(Clipboard, 1, getenpos-1)
	Clipboard2 := SubStr(Clipboard, getenpos)
	Sleep, 10
	SendInput,{Text}%Clipboard1%  ;text启用文本模式, 它发送的是字符流而不是按键
	Sleep, 10
	SendInput,%Clipboard2%
}
return
1 个赞