From 08426b3d9b920476a4979daa5fe94e44147ee043 Mon Sep 17 00:00:00 2001 From: TheMockTv Date: Mon, 7 Sep 2026 10:57:33 +0200 Subject: [PATCH] pruef_installation hinterlaesst den Zustand, den er vorfindet War das Programm vorher installiert, ist es danach wieder installiert. Beim ersten Lauf war es das NICHT - danach stand ein deinstalliertes Programm da, und der naechste Schritt (den Updater starten lassen) lief ins Leere. Ein Pruefstand, der aufraeumt, muss auch sich selbst aufraeumen. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01V4t48uxDok5rJXhC9bX1Ax --- pruef_installation.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pruef_installation.py b/pruef_installation.py index 7e9719c..f789ebc 100644 --- a/pruef_installation.py +++ b/pruef_installation.py @@ -36,6 +36,12 @@ programme gehoeren zu der firma"*. ⚠ DIESER PRUEFSTAND INSTALLIERT WIRKLICH. Er laeuft deshalb nur, wenn das Setup gebaut ist, und er fasst NUR die Programmordner an - vorhandene Daten werden vorher gesichert und danach zurueckgelegt. + +Und er hinterlaesst den Zustand, den er vorgefunden hat: war das Programm +vorher installiert, ist es danach wieder installiert. Beim ersten Lauf war es +das NICHT - danach stand ein deinstalliertes Programm da, und der naechste +Schritt lief ins Leere. Ein Pruefstand, der aufraeumt, muss auch sich selbst +aufraeumen. """ import os import shutil @@ -116,6 +122,7 @@ if os.path.isdir(RAVOKK): print(f" ({len(gesichert)} vorhandene Datei(en) gesichert)") beenden() +war_installiert = os.path.exists(os.path.join(PROGRAMMORDNER, "unins000.exe")) alter_uninstaller = os.path.join(PROGRAMMORDNER, "unins000.exe") if os.path.exists(alter_uninstaller): subprocess.run([alter_uninstaller, "/VERYSILENT", "/SUPPRESSMSGBOXES", @@ -172,6 +179,13 @@ pruefe(os.path.isdir(RAVOKK), # ---- Aufraeumen --------------------------------------------------------- if os.path.exists(probe): os.remove(probe) +if war_installiert: + # So hinterlassen, wie es vorgefunden wurde. + subprocess.run([setup, "/VERYSILENT", "/SUPPRESSMSGBOXES", "/NORESTART"], + capture_output=True) + time.sleep(5) + print(f" (war vorher installiert - wieder eingerichtet: " + f"{os.path.isdir(PROGRAMMORDNER)})") for d in gesichert: ziel = os.path.join(RAVOKK, d) if not os.path.exists(ziel):