diff --git a/winehelper_gui.py b/winehelper_gui.py index eec3f65..b7d72a9 100644 --- a/winehelper_gui.py +++ b/winehelper_gui.py @@ -3683,13 +3683,11 @@ class WineHelperGUI(QMainWindow): msg_box.exec_() if msg_box.clickedButton() == yes_button: - # Корректно завершаем все дочерние процессы - for desktop_path, process in list(self.running_apps.items()): - if process.state() == QProcess.Running: - print(f"Завершение процесса для {desktop_path}...") - process.terminate() - if not process.waitForFinished(2000): # Ждем 2 сек - process.kill() # Если не закрылся, убиваем + # Используем встроенную команду killall для надежного завершения всех процессов wine + print("Завершение всех запущенных приложений через 'winehelper killall'...") + kill_proc = QProcess() + kill_proc.start(self.winehelper_path, ["killall"]) + kill_proc.waitForFinished(5000) # Даем до 5 секунд на завершение event.accept() else: event.ignore()