影子的万能键是我之前修改的一个非常喜欢的功能,我是作为默认英文窗口的切换键使用的
再念叨一下我的理念,我的理念就是不切换输入法,想怎么打怎么打,比如我在默认英文的浏览器窗口,我是不会按shift来切换中文状态打字的,直接全部输入完毕后按下万能键就可以了,英文也一样,直接打完再上屏,绝不切换输入法
演示移植版本
使用方法,使用kbl输入法切换的直接把我修改的部分放在最后就可以了,不用的朋友去火大佬那里找一下函数吧
!s::
gosub 万能键
return
万能键:
Gosub, up3
if WinActive("ahk_group special")
Gosub, SpecialFlow
Else
Gosub,NormalFlow
Gosub, up3
Return
up3:
SendInput, {altup}{ctrlup}{ShiftUp}
Return
NormalFlow:
Clipboard := ""
SendInput, +{Home}^c
ClipWait,1
SendInput,{Right}
if (RegExMatch(Clipboard, "(?<!\w)(\w+$)", 编码)) {
编码长 := StrLen(编码)
SendInput, % "{bs " 编码长 "}"
setKBLlLayout(0,1)
sendinput,% 编码
} Else {
return
}
return
SpecialFlow:
;向后复制测试是否有东西
Clipboard :=firststr:=str1:=str2:=str3:=编码长:=编码:=""
SendInput, +{end}^c
sleep 100
laststr:=Clipboard , Clipboard :=""
;第一次向前复制
SendInput, +{Home}^c
ClipWait,1,1
firststr:=Clipboard , str1:=StrLen(Clipboard) , Clipboard :=""
;检测后面是否有内容
if (laststr="" or laststr=firststr)
SendInput,{End}
Else
SendInput, {right}
if (RegExMatch(firststr, "(?<!\w)(\w+$)", 编码)) {
编码长 := StrLen(编码)
SendInput, % "{bs " 编码长 "}"
setKBLlLayout(0,1)
sendinput,% 编码
} Else {
return
}
Return