├── README.md └── WeaselServerAutostart.ahk /README.md: -------------------------------------------------------------------------------- 1 | # WeaselServerAutostart 2 | 3 | 在开机后,如果发现小狼毫无法输出中文,很可能是算法服务没有正常启动。 4 | 5 | 解决方法是手动打开小狼毫程序文件夹中的 `WeaselServer.exe`,默认位置为 `C:\Program Files (x86)\Rime\weasel-0.*\WeaselServer.exe`。请注意,不要将 `WeaselServer.exe` 设为开机启动,否则可能会导致程序报错。 6 | 7 | 随着小狼毫成为主力输入法,这个问题变得更加频繁。为了解决这个问题,我使用 AutoHotkey 编写了此脚本,暂时解决了这个问题。 8 | 9 | 下载打包好的 exe 程序: 10 | 11 | ## 使用方法 12 | 13 | 1. 为脚本或程序 `WeaselServerAutostart.exe` 创建一个桌面快捷方式。如果你的输入法是绿色版或非默认路径安装,则将程序放入小狼毫的「程序文件夹」内,然后生成快捷方式。 14 | 2. 将快捷方式移动到开机启动目录。在 Windows 10/11 中,开机启动目录的默认位置是 `%AppData%\Microsoft\Windows\Start Menu\Programs\Startup`。 15 | 16 | ## 脚本逻辑 17 | 18 | 1. 检测小狼毫算法服务 `WeaselServer.exe` 是否已经启动。如果没有运行,则脚本会启动与脚本同目录下的 `WeaselServer.exe` 程序。如果目录中没有该程序,脚本会动态查找 weasel 的默认安装路径(支持多版本)。 19 | 2. 然后,脚本会休眠 30 秒,并再次检测算法服务是否已经启动。 20 | 3. 接着,脚本休眠 180 秒,最后检测一次算法服务是否已经启动。这次之后,无论结果如何,程序都将自动退出。 21 | -------------------------------------------------------------------------------- /WeaselServerAutostart.ahk: -------------------------------------------------------------------------------- 1 | #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. 2 | ; #Warn ; Enable warnings to assist with detecting common errors. 3 | SendMode Input ; Recommended for new scripts due to its superior speed and reliability. 4 | SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. 5 | 6 | ; 检测当前脚本目录是否有 WeaselServer.exe 程序 7 | IfExist, %A_ScriptDir%\WeaselServer.exe 8 | NewRunningDir := A_ScriptDir ; 如果有,将脚本目录设置为运行目录 9 | Else 10 | { 11 | ; 动态查找最新版本的 weasel 目录 12 | NewRunningDir := FindLatestWeaselDir("C:\Program Files (x86)\Rime") 13 | If (NewRunningDir = "") 14 | NewRunningDir := FindLatestWeaselDir("C:\Program Files\Rime") 15 | } 16 | 17 | ; 脚本启动后首先检查「小狼毫算法服务」是否已启动,如未启动,则手动启动 18 | StartWeaselServer(NewRunningDir) 19 | 20 | ; 脚本休眠 30 秒 21 | Sleep, 30000 22 | 23 | ; 休眠结束后,再次检查「小狼毫算法服务」是否已启动 24 | StartWeaselServer(NewRunningDir) 25 | 26 | ; 脚本再次休眠 180 秒 27 | Sleep, 180000 28 | 29 | ; 休眠结束后,最后检查一次「小狼毫算法服务」是否已启动 30 | StartWeaselServer(NewRunningDir) 31 | 32 | ; 无论结果如何,结束脚本 33 | ExitApp 34 | 35 | ; 定义函数:启动 WeaselServer 36 | StartWeaselServer(RunningDir) { 37 | Process, Exist, WeaselServer.exe 38 | NewPID := ErrorLevel ; ErrorLevel 的值可能会经常变化,所以需要立即保存这个值 39 | if not NewPID 40 | { 41 | Run, %RunningDir%\WeaselServer.exe 42 | } 43 | } 44 | 45 | ; 定义函数:查找最新版本的 weasel 目录 46 | FindLatestWeaselDir(baseDir) { 47 | latestDir := "" 48 | Loop, Files, %baseDir%\weasel-*, D 49 | { 50 | latestDir := A_LoopFileFullPath 51 | } 52 | return latestDir 53 | } 54 | --------------------------------------------------------------------------------