# -*- coding: utf-8 -*- """设置窗口补上「开机自启(静默运行)」开关。 静默模式本身没有界面,所以这个开关有两个入口: * 有窗口的模式下:设置窗口里的复选框 * 已经完全静默时:手表「静默」页里的「开机自启」开关 """ from __future__ import annotations import sys from pathlib import Path UI = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote\windows" r"\lanremote\ui.py") ANCHOR = ''' check.pack(side="left") ''' ADDITION = ''' check.pack(side="left") # ---- 开机自启 ---- row_label("开机自启", "开机后在后台静默运行,没有任何窗口") from .autostart import is_enabled as _auto_on try: _auto_now = _auto_on() except Exception: # noqa: BLE001 _auto_now = False start_row = tk.Frame(win, bg=BG) start_row.pack(fill="x", padx=16) var_auto = tk.BooleanVar(value=_auto_now) tk.Checkbutton(start_row, text="开机自动启动(静默)", variable=var_auto, bg=BG, fg=FG, activebackground=BG, selectcolor=CARD, font=FONT_SMALL, anchor="w", bd=0, highlightthickness=0).pack(side="left") ''' SAVE_OLD = ''' off = [name for name, var in (("执行命令", var_run), ("电源操作", var_power),''' SAVE_NEW = ''' # 开机自启(可能失败:权限/注册表被锁) auto_note = "" try: from .autostart import is_enabled if bool(var_auto.get()) != is_enabled(): from .autostart import toggle toggle(bool(var_auto.get())) auto_note = ";开机自启已" + ("开启" if var_auto.get() else "关闭") except Exception as exc: # noqa: BLE001 auto_note = f";开机自启设置失败({exc})" off = [name for name, var in (("执行命令", var_run), ("电源操作", var_power),''' SAVE_LOG_OLD = ''' if off: self.log(f"设置已保存;已关闭:{'、'.join(off)}") else: self.log(f"设置已保存(音色={chosen},语速={rate})")''' SAVE_LOG_NEW = ''' if off: self.log(f"设置已保存;已关闭:{'、'.join(off)}{auto_note}") else: self.log(f"设置已保存(音色={chosen},语速={rate}){auto_note}")''' def main() -> int: text = UI.read_text(encoding="utf-8") ok = True for old, new, tag in ((ANCHOR, ADDITION, "自启复选框"), (SAVE_OLD, SAVE_NEW, "保存自启"), (SAVE_LOG_OLD, SAVE_LOG_NEW, "日志文案")): if old not in text: print(f" [跳过] {tag} —— 锚点没找到") ok = False continue text = text.replace(old, new, 1) print(f" {tag}: OK") if ok: UI.write_text(text, encoding="utf-8") import ast try: ast.parse(UI.read_text(encoding="utf-8")) print(" ui.py: 语法 OK") except SyntaxError as exc: print(f" ui.py: 语法错误 {exc}") ok = False return 0 if ok else 1 if __name__ == "__main__": sys.exit(main())