; ============================================================================== ; 脚本名称: CapsWriter 自动化助手 (V2 Compiled Version) ; 编译说明: 请使用 AHK V2 自带的 "Convert .ahk to .exe" 工具编译此脚本 ; ============================================================================== #Requires AutoHotkey v2.0 #SingleInstance Force ; 1. 接收参数 (右键菜单传递过来的视频文件路径) ; A_Args 是 V2 中获取命令行参数的数组 if (A_Args.Length < 1) { MsgBox("错误:未检测到文件路径。`n请不要直接双击运行,请在视频文件上右键使用。", "CapsWriter 助手") ExitApp } VideoPath := A_Args[1] ; 2. 设定工作目录 ; 编译成 EXE 后,A_ScriptDir 就是 EXE 所在的目录。 ; 务必确保编译后的 EXE 文件放在 CapsWriter 的根目录下! WorkingDir := A_ScriptDir ServerExe := "start_server.exe" ClientExe := "start_client.exe" ; 3. 核心逻辑:检查服务端是否存活 ; ProcessExist 在 V2 中替代了 Process, Exist 命令,返回 PID 或 0 if !ProcessExist(ServerExe) { ; --- 场景 A:服务端没开 --- ; 气泡提示 (V2 语法: Text, Title) TrayTip "服务端未运行,正在后台启动 (需等待35秒)...", "CapsWriter 助手" ; 启动服务端 (Hide 隐藏窗口,避免弹黑框) ; 语法: Run(Target, WorkingDir, Options) try { Run(ServerExe, WorkingDir, "Hide") } catch as e { MsgBox("无法启动服务端,请检查文件是否存在!`n路径: " WorkingDir "\" ServerExe, "错误") ExitApp } ; 强制等待 35 秒 (用户指定) Sleep(35000) TrayTip "模型加载完毕,正在调起转录...", "CapsWriter 助手" } else { ; --- 场景 B:服务端已在运行 --- TrayTip "服务端已就绪,立即开始转录...", "CapsWriter 助手" } ; 4. 调起客户端进行转录 ; 注意:命令行参数中,如果路径包含空格,必须用双引号包裹 ; 也就是拼凑出类似: "start_client.exe" "D:\My Videos\Test.mp4" try { Run('"' ClientExe '" "' VideoPath '"', WorkingDir) } catch { MsgBox("无法启动客户端,请检查文件是否完整。", "错误") } ExitApp