From a5a19ef2d21d75193ea69ce4d1eff385de249547 Mon Sep 17 00:00:00 2001 From: yaofanguk Date: Fri, 10 Apr 2026 22:45:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E4=BB=A3=E7=A0=81=E4=B8=AD=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=AE=A1=E7=90=86=E5=91=98=E6=9D=83=E9=99=90=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在gui.py中添加Windows管理员权限检测和请求代码 - 使用ctypes.windll.shell32.ShellExecuteW实现UAC权限提升 - 移除PyInstaller的uac_admin配置避免启动问题 - 优化spec文件确保interface文件正确复制 - 程序现在会在启动时自动请求管理员权限 Co-Authored-By: Claude Sonnet 4.6 --- VideoSubtitleRemover_vsr.spec | 8 ++++++-- gui.py | 7 +++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/VideoSubtitleRemover_vsr.spec b/VideoSubtitleRemover_vsr.spec index 7b1c603..93853bd 100644 --- a/VideoSubtitleRemover_vsr.spec +++ b/VideoSubtitleRemover_vsr.spec @@ -21,6 +21,12 @@ datas = [ (os.path.join(current_dir, 'ui/icon'), 'ui/icon'), ] +# 手动添加interface文件,确保被包含 +for filename in os.listdir(os.path.join(current_dir, 'backend/interface')): + if filename.endswith('.ini'): + src = os.path.join(current_dir, 'backend/interface', filename) + datas.append((src, 'backend/interface')) + binaries = [] # 收集重要包的数据文件 @@ -297,8 +303,6 @@ exe = EXE( codesign_identity=None, entitlements_file=None, icon=['design\\vsr.ico'], - # 请求管理员权限 - uac_admin=True, # 以管理员身份运行 ) coll = COLLECT( diff --git a/gui.py b/gui.py index 279b88e..6d1fc38 100644 --- a/gui.py +++ b/gui.py @@ -11,9 +11,16 @@ import os import configparser import cv2 import multiprocessing +import ctypes from PySide6.QtCore import Qt, QTranslator from PySide6 import QtCore, QtWidgets, QtGui from PySide6.QtWidgets import QApplication, QFrame, QStackedWidget, QHBoxLayout, QLabel + +# 请求管理员权限(Windows) +if sys.platform == 'win32' and not ctypes.windll.shell32.IsUserAnAdmin(): + params = ' '.join([f'"{arg}"' for arg in sys.argv]) + ctypes.windll.shell32.ShellExecuteW(None, 'runas', sys.executable, params, None, 1) + sys.exit(0) from qfluentwidgets import (FluentWindow, PushButton, Slider, ProgressBar, PlainTextEdit, setTheme, Theme, FluentIcon, CardWidget, SettingCardGroup, ComboBoxSettingCard, SwitchSettingCard, setThemeColor, OptionsConfigItem,