Skip to content

Commit

Permalink
feat: 动态查找最新版本的 weasel 目录
Browse files Browse the repository at this point in the history
  • Loading branch information
rockbenben committed May 29, 2024
1 parent 2f4a402 commit ee2eb0c
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

在开机后,如果发现小狼毫无法输出中文,很可能是算法服务没有正常启动。

解决方法是手动打开小狼毫程序文件夹中的 `WeaselServer.exe`,默认位置为 `C:\Program Files (x86)\Rime\weasel-0.15.0\WeaselServer.exe`。请注意,不要将 `WeaselServer.exe` 设为开机启动,否则可能会导致程序报错。
解决方法是手动打开小狼毫程序文件夹中的 `WeaselServer.exe`,默认位置为 `C:\Program Files (x86)\Rime\weasel-0.*\WeaselServer.exe`。请注意,不要将 `WeaselServer.exe` 设为开机启动,否则可能会导致程序报错。

随着小狼毫成为主力输入法,这个问题变得更加频繁。为了解决这个问题,我使用 AutoHotkey 编写了此脚本,暂时解决了这个问题。

Expand All @@ -15,6 +15,6 @@

## 脚本逻辑

1. 检测小狼毫算法服务 `WeaselServer.exe` 是否已经启动。如果没有运行,则脚本会启动与脚本同目录下的 `WeaselServer.exe` 程序。如果目录下没有该算法程序,则使用 weasel-0.15.0 的默认安装路径。
1. 检测小狼毫算法服务 `WeaselServer.exe` 是否已经启动。如果没有运行,则脚本会启动与脚本同目录下的 `WeaselServer.exe` 程序。如果目录中没有该程序,脚本会动态查找 weasel 的默认安装路径(支持多版本)
2. 然后,脚本会休眠 30 秒,并再次检测算法服务是否已经启动。
3. 接着,脚本休眠 180 秒,最后检测一次算法服务是否已经启动。这次之后,无论结果如何,程序都将自动退出。
15 changes: 14 additions & 1 deletion WeaselServerAutostart.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
IfExist, %A_ScriptDir%\WeaselServer.exe
NewRunningDir := A_ScriptDir ; 如果有,将脚本目录设置为运行目录
Else
NewRunningDir := "C:\Program Files (x86)\Rime\weasel-0.15.0" ; 如果没有,将运行目录设置为 weasel-0.15.0 的默认安装路径
{
; 动态查找最新版本的 weasel 目录
NewRunningDir := FindLatestWeaselDir("C:\Program Files (x86)\Rime")
}

; 脚本启动后首先检查「小狼毫算法服务」是否已启动,如未启动,则手动启动
StartWeaselServer(NewRunningDir)
Expand All @@ -27,6 +30,7 @@ StartWeaselServer(NewRunningDir)
; 无论结果如何,结束脚本
ExitApp

; 定义函数:启动 WeaselServer
StartWeaselServer(RunningDir) {
Process, Exist, WeaselServer.exe
NewPID := ErrorLevel ; ErrorLevel 的值可能会经常变化,所以需要立即保存这个值
Expand All @@ -35,3 +39,12 @@ StartWeaselServer(RunningDir) {
Run, %RunningDir%\WeaselServer.exe
}
}

; 定义函数:查找最新版本的 weasel 目录
FindLatestWeaselDir(baseDir) {
Loop, Files, %baseDir%\weasel-*, D
{
latestDir := A_LoopFileFullPath
}
return latestDir
}

0 comments on commit ee2eb0c

Please # to comment.