这几天发现重装系统后注册影子的dll一直失败非常让人抓狂
总结tsf安装失败的已知两种可能性
1. 给管家拦劫了
2. 刚装机缺少运行库
差不多是这样的一个报错,百度了相关情况其实都不适用影子的这个情况
排查问题来自于后台的,某个联想电脑管家的进程捣鬼,关闭之后就可以注册了,所以可以确定的是类似注册失败的影子问题都是这个原因造成的
下面详细的解读一下影子输入法的tsf注册相关的源码
安装tsf的源码非常的简单
效果就是和自己手动打开cmd 运行regsvr32 路径进行手动注册dll是差不多的,所以遇到问题可以手动注册一下来排查错误,手动都不成功显然就是有管家类的应用阻止了dll的注册
InstallTSF(){
bat:=""
GuiControlGet, ck, , %A_GuiControl%
If (ck){
If (!FileExist(A_ScriptDir "\tsf\Yzime.dll"))
If (!ZIPDownloadToFile("https://gitee.com/orz707/Yzime/raw/zip/tsf.7z", A_ScriptDir "\tsf\tsf.7z")){
GuiControl, , %A_GuiControl%, 0
Return 0
}
bat = regsvr32 "%A_ScriptDir%\tsf\Yzime.dll"
If (A_Is64bitOS)
bat .= " && regsvr32 """ A_ScriptDir "\tsf\Yzime64.dll"""
} Else {
bat = regsvr32 /u "%A_ScriptDir%\tsf\Yzime.dll"
If (A_Is64bitOS)
bat .= " && regsvr32 /u """ A_ScriptDir "\tsf\Yzime64.dll"""
}
Try {
RunWait *RunAs cmd.exe /c "%bat%", , Hide
If (!ck)
Gosub srfreload
} Catch e {
If (e.what="SendMessage" && e.message="FAIL")
Gosub srfreload
GuiControl, , %A_GuiControl%, % !ck
}
}
补充一下新安装的系统影子tsf安装失败还有另一种可能,缺少库,这个去果核剥壳下个最新的运行库安装就可以解决