"""Windows 子进程启动辅助(隐藏控制台黑窗)。""" from __future__ import annotations import subprocess import sys def _no_window_flag() -> int: return getattr(subprocess, "CREATE_NO_WINDOW", 0x08000000) def popen_kwargs_hide_console(*, new_process_group: bool = False, **extra) -> dict: """供 subprocess.Popen 使用:GUI 调用 CLI/Bridge 时不弹出 cmd 窗口。""" if sys.platform != "win32": return extra flags = int(extra.pop("creationflags", 0) or 0) flags |= _no_window_flag() if new_process_group: flags |= subprocess.CREATE_NEW_PROCESS_GROUP extra["creationflags"] = flags return extra