From 7647d15c525eef873a204671fa14b5b72c5e02a9 Mon Sep 17 00:00:00 2001 From: wood chen Date: Sat, 16 Nov 2024 10:47:25 +0800 Subject: [PATCH] fix(gui): hide CMD window on Windows for subprocess calls --- gui.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/gui.py b/gui.py index 860f156..12b1601 100644 --- a/gui.py +++ b/gui.py @@ -335,15 +335,22 @@ class VideoToGifConverter: # 打印命令用于调试 print("调色板生成命令:", " ".join(palette_cmd)) + # 创建 startupinfo 对象(用于隐藏 CMD 窗口) + startupinfo = None + if platform.system().lower() == "windows": + startupinfo = subprocess.STARTUPINFO() + startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW + startupinfo.wShowWindow = subprocess.SW_HIDE # 运行调色板生成命令 process = subprocess.Popen( palette_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, - startupinfo=( - subprocess.STARTUPINFO() + startupinfo=startupinfo, + creationflags=( + subprocess.CREATE_NO_WINDOW if platform.system().lower() == "windows" - else None + else 0 ), ) _, stderr = process.communicate() @@ -387,10 +394,11 @@ class VideoToGifConverter: gif_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, - startupinfo=( - subprocess.STARTUPINFO() + startupinfo=startupinfo, + creationflags=( + subprocess.CREATE_NO_WINDOW if platform.system().lower() == "windows" - else None + else 0 ), ) _, stderr = process.communicate()