diff --git a/README.md b/README.md index c13def2..d85be95 100644 --- a/README.md +++ b/README.md @@ -6,14 +6,15 @@ 随着小狼毫成为主力输入法,这个问题变得更加频繁。为了解决这个问题,我使用 AutoHotkey 编写了此脚本,暂时解决了这个问题。 -你可以在以下链接的 GitHub 页面下载打包好的 exe 程序:https://github.com/rockbenben/rime-WeaselServer/releases/ +下载打包好的 exe 程序: ## 使用方法 -1. 为脚本或程序 `WeaselServerAutostart.exe` 创建一个桌面快捷方式。 +1. 为脚本或程序 `WeaselServerAutostart.exe` 创建一个桌面快捷方式。如果你的输入法是绿色版或非默认路径安装,则将程序放入小狼毫的「程序文件夹」内,然后生成快捷方式。 2. 将快捷方式移动到开机启动目录。在 Windows 10/11 中,开机启动目录的默认位置是 `%AppData%\Microsoft\Windows\Start Menu\Programs\Startup`。 ## 脚本逻辑 -1. 检测小狼毫算法服务 `WeaselServer.exe` 是否已经启动。如果没有运行,则脚本会启动与脚本同目录下的 `WeaselServer.exe` 程序。 -2. 接着,脚本会休眠 30 秒,然后再次检测算法服务是否已经启动。 +1. 检测小狼毫算法服务 `WeaselServer.exe` 是否已经启动。如果没有运行,则脚本会启动与脚本同目录下的 `WeaselServer.exe` 程序。如果目录下没有该算法程序,则使用 weasel-0.15.0 的默认安装路径。 +2. 然后,脚本会休眠 30 秒,并再次检测算法服务是否已经启动。 +3. 接着,脚本休眠 180 秒,最后检测一次算法服务是否已经启动。这次之后,无论结果如何,程序都将自动退出。 diff --git a/WeaselServerAutostart.ahk b/WeaselServerAutostart.ahk index 9979ce4..5abde4a 100644 --- a/WeaselServerAutostart.ahk +++ b/WeaselServerAutostart.ahk @@ -3,20 +3,33 @@ SendMode Input ; Recommended for new scripts due to its superior speed and reliability. SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. -; Set the new running directory,当前为 weasel-0.15.0 的默认安装目录 -NewRunningDir := "C:\Program Files (x86)\Rime\weasel-0.15.0" +; 检测当前脚本目录是否有 WeaselServer.exe 程序 +IfExist, %A_ScriptDir%\WeaselServer.exe + NewRunningDir := A_ScriptDir ; 如果有,将脚本目录设置为运行目录 +Else + NewRunningDir := "C:\Program Files (x86)\Rime\weasel-0.15.0" ; 如果没有,将运行目录设置为 weasel-0.15.0 的默认安装路径 -; 脚本启动即检测「小狼毫算法服务」是否运行,未运行即手动启动 +; 脚本启动后首先检查「小狼毫算法服务」是否已启动,如未启动,则手动启动 StartWeaselServer(NewRunningDir) + ; 脚本休眠 30 秒 Sleep, 30000 -; 休眠过后,第二次检测「小狼毫算法服务」是否运行 + +; 休眠结束后,再次检查「小狼毫算法服务」是否已启动 +StartWeaselServer(NewRunningDir) + +; 脚本再次休眠 180 秒 +Sleep, 180000 + +; 休眠结束后,最后检查一次「小狼毫算法服务」是否已启动 StartWeaselServer(NewRunningDir) -return + +; 无论结果如何,结束脚本 +ExitApp StartWeaselServer(RunningDir) { Process, Exist, WeaselServer.exe - NewPID := ErrorLevel ; 由于 ErrorLevel 会经常发生改变, 所以要立即保存这个值. + NewPID := ErrorLevel ; ErrorLevel 的值可能会经常变化,所以需要立即保存这个值 if not NewPID { Run, %RunningDir%\WeaselServer.exe