感谢僵尸大佬的帮助,大量请教僵尸大佬后终于几乎上手了影子.
决定每天发文一篇记录一下自己对影子的小修改,方便大家了解一些影子的修改,也方便自己查询
目前主要修改的点在快捷键的兼容性增强以及一些小功能的添加.
这个过程也是我自己阅读影子源码的过程
首先是我个人对于修改影子快捷键的一些想法
一些打开设置,词库工具之类的可以写在user里面,但是一些涉及输入框相关的按键还是在源码里面添加和修改把
防止出现麻烦
首先是增加了^space的上屏加enter搜索的快捷键,我喜欢一口气打完字搜索,省得自己再按enter了
^space::
Gosub, 上屏
sleep 200
SendInput, {enter}
Return
Space::
Gosub, 上屏
Return
上屏:
If srf_symbol[srf_all_Input] {
RegExMatch(jichu_for_select_Array[localpos,2],"i)\{[a-z]+\}",Match)
SendInput(StrReplace(jichu_for_select_Array[localpos,2],Match), SendDelaymode)
If (Match)
SendInput, %Match%
Gosub srf_value_off
} Else {
If (dwxg&&ToolTipStyle=2&&localpos=1&&(jichu_for_select_Array[1,-2]=""&&jichu_for_select_Array[1,0]~="pinyin"&&StrLen(jichu_for_select_Array[1,2])>1)){
If Showdwxgtip()
Return
}
select_for_num(localpos)
}
Return
另外我喜欢用shift来进行切换并且上屏编码,如果shift来切换辅助码就很不顺手,但是辅助码的这个按键也不能缺少
所以自己摘取了shift中关于辅助码的部分提到f1来按键,注意这么改要把f1可能占用的ahk脚本改一改否则无法成功按出来的
; 输入的的时候按f1进行辅助码的切换
F1::
If RegExMatch(srf_all_Input_["tip"],"O).*[a-z][a-z]'([a-z]('?[a-z])?)$",fzm){
tfzm:=StrReplace(fzm.Value[1],"'"), srf_all_Input:=RegExReplace(srf_all_Input, tfzm "$")
jichu_for_select_Array:=pinyinmethod(srf_all_Input, Inputscheme), waitnum:=0
Gosub houchuli
Gosub srf_tooltip_fanye
}
Return
另外我因为使用capsez,占用的caps按键所以原有的caps功能全部放弃,注释,原来的esc作为清屏也不能使用,所以改了一个^backspace来代替
^BackSpace::
If (!srf_inputing){
SetYzLogo(srf_mode:=0, 1)
SetTimer, ToolTipInputStatus, -10
}
Gosub srf_value_off
If (srf_mode&&Escfg=3){
SetYzLogo(srf_mode:=0, 1)
SetTimer, ToolTipInputStatus, -10
}
Return
然后就是再user中的自动执行段的修改,这一段首先感谢僵尸老哥的教导,提供了他的写法,参考后因为我只用双拼和全拼进行了一些改动,简化代码
首先是自动执行的部分,这里不能用::的快捷键,会自动执行,只能hotkey
Hotkey, ^F1, toggle_Pin_xh ; 热键切换到双拼全拼
Hotkey, ^+z, 造词
Hotkey, ^+x, app
Hotkey, ^F2, option
Hotkey,^f3, cikuManager
Goto, _init_
接下来的是注释了我不用的函数和sub,根据需求修改就可以了
app:
appmanager()
Return
toggle_Pin_xh:
(Inputscheme = "pinyin") ? Inputscheme:= "xhsp" : Inputscheme:= "pinyin"
if (Inputscheme = "pinyin")
ToolTip, 已切换到全拼
Else
ToolTip, 已切换到小鹤双拼
SetTimer, RemoveToolTip, -3000
goto pinyinlei
Return
;-------------------------------------------------------------------------------------------------------------------------------------------------
造词:
Clipboard:=""
SendInput, ^c
sleep 300
srf_create(RegExReplace(srf_all_Input,"i)[^a-z]"))
Return
pinyinlei:
shurulei:="pinyin"
GuiControl, 3:, _Inputscheme, %pinyinlist%
If !(Inputscheme~="pinyin|sp$"){
tvar:=""
For Value,Key In ["decfre","fixedword","Imagine","Learning","Tofirst","Wordfrequency"] {
tvar .= Yzimeini["Settings",key]
GuiControl, 3:, %key%, % (Yzimeini["Settings",key]:=%key%:=(SubStr(Yzimeini["Settings","Settingsbak"], A_Index, 1)?1:0))
}
tvar .= Inputscheme, Inputscheme:=SubStr(Yzimeini["Settings","Settingsbak"], 7)?SubStr(Yzimeini["Settings","Settingsbak"], 7):"pinyin"
Yzimeini["Settings","Settingsbak"]:=tvar
}
_Inputscheme:=pinyinec[Inputscheme]
GuiControl, 3:ChooseString, _Inputscheme, %_Inputscheme%
GuiControl, % "3:Disable" (Inputscheme="pinyin"), Showquanpin
Loop 15
GuiControl, % "3:Show" (A_Index<9), % "Button" (A_Index+15)
GuiControl, 3:Text, Imagine, 联想
GuiControl, 3:Text, Learning, 自学习
Yzimeini.Settings["Inputscheme"]:=Inputscheme
return
RemoveToolTip:
ToolTip
Return
; 指示条:
; 显示方案:=(Inputscheme ~= "xhsp") ? "小鹤" : "全拼"
; 中英模式 := (srf_mode = 0) ? "英" : "中"
; Gui, ZY:+Owner -Caption +AlwaysOnTop +HwndZYGui border -DPIScale
; Gui, ZY:font, s18, 微软雅黑
; Gui, ZY:Margin,6,4
; Gui, ZY:Add, Text, y0 v中英状态 g中英状态, %中英模式%
; Gui, ZY:Add, Text, x+5, |
; Gui, ZY:Add, Text, x+5 v输入方案 g输入方案, %显示方案%
; Gui, ZY:show
; return
; 中英状态:
; srf_mode := (srf_mode = 0) ? 1 : 0
; 中英模式 := (srf_mode = 0) ? "英" : "中"
; GuiControl, Text, 中英状态, %中英模式%
; SetYzLogo(srf_mode, 1)
; return
; 输入方案:
; PostMessage, 0xA1, 2, Ahk_id %ZYGui%
; if (A_GuiEvent = "DoubleClick")
; Inputscheme := (Inputscheme ~= "xhsp") ? "pinyin" : (Inputscheme ~= "pinyin") ? "wubi98" : "xhsp"
; 显示方案 := (Inputscheme ~= "xhsp")? "小鹤" : (Inputscheme ~= "pinyin")? "全拼" : (Inputscheme ~= "wubi98") ? "五笔" : "其他"
; GuiControl, Text, 输入方案, %显示方案%
; Return
之前还用过ra群的火老哥的输入法自动切换的工具,有点想法移植部分思路到影子上
准备明天修改一下影子写入和读取ini的思路,之后出第二篇文章
加油!
窗口状态自动切换及多方面的优化可以参照我这个帖子 https://www.autoahk.com/archives/41615
感谢老哥,我来看一下
THANKS!
123456789