fix(windows): der Knopf "Rippy oeffnen" oeffnete Rippy nicht
Ampel / ampel (push) Failing after 55s

Nach einer erfolgreichen Einrichtung schloss er nur das Fenster, und danach
passierte nichts mehr: Der Dienst lief nicht, kein Fenster ging auf. Der
Commander hat Rippy anschliessend selbst gestartet ("das tool selbst laesst
sich starten") -- was den Fehler verdeckt hat.

Ein Knopf, der etwas anderes tut als seine Beschriftung sagt, ist schlimmer
als keiner. Jetzt startet main() nach einem geglueckten Assistenten das
installierte Programm.

Dazu der zweite Teil des Netzlaufwerk-Befunds: Auch Netz-ANMELDUNGEN haengen
am Token der Sitzung, nicht nur die Laufwerksbuchstaben. Ein erhoehter Prozess
kennt die Zugangsdaten zur Freigabe nicht und bekommt "Zugriff verweigert" --
also dieselbe Meldung wie bei einem echten Rechteproblem. Ein UNC-Pfad mit
Administratorrechten wird jetzt als solcher erkannt und erklaert.

Ampel lokal: 705 gruen, ruff sauber.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-08-28 14:38:17 +02:00
co-authored by Claude Opus 5
parent 6dfff5c99d
commit 082e8b8b55
3 changed files with 44 additions and 0 deletions
+11
View File
@@ -231,6 +231,17 @@ def pruefe_schreibrecht(ziel: str, probe=None, erhoeht=None) -> dict:
("Statt des Laufwerksbuchstabens den UNC-Pfad eintragen "
"(\\\\Server\\Freigabe)." + zusatz))
if (ziel or "").startswith("\\\\") and laeuft_erhoeht(erhoeht):
# Auch Netz-ANMELDUNGEN hängen am Token der Sitzung, nicht nur die
# Laufwerksbuchstaben. Ein erhöhter Prozess kennt die Zugangsdaten
# zur Freigabe deshalb nicht und bekommt „Zugriff verweigert" —
# dieselbe Meldung wie bei einem echten Rechteproblem.
return _eintrag(
"Schreibrecht", FEHLER, "%s (%s)" % (ziel, grund),
"Als Administrator gestartete Programme kennen die Anmeldung an "
"der Freigabe nicht. Rippy ohne Administrator starten — dann "
"geht der Netzwerkpfad.")
if _unter_programme(ziel):
return _eintrag(
"Schreibrecht", FEHLER, "%s (%s)" % (ziel, grund),
+22
View File
@@ -239,3 +239,25 @@ def test_vorgaben_sind_vollstaendig():
assert v["port"] == 7788
assert v["ziel"] and v["ablage"]
assert "/app/" not in v["ablage"], "Container-Pfad in einer Windows-Vorgabe"
def test_netzwerkpfad_als_administrator_wird_erklaert():
"""Der zweite Teil des Befunds: Auch Netz-ANMELDUNGEN haengen am Token
der Sitzung. Ein erhoehter Prozess kennt die Zugangsdaten zur Freigabe
nicht und bekommt 'Zugriff verweigert' -- dieselbe Meldung wie bei einem
echten Rechteproblem."""
B = chr(92)
befund = e.pruefe_schreibrecht(
B + B + "NAS" + B + "Filme", probe=(False, "Zugriff verweigert"),
erhoeht=True)
assert befund["zustand"] == e.FEHLER
assert "ohne Administrator" in befund["abhilfe"]
def test_netzwerkpfad_ohne_administrator_bekommt_die_normale_meldung():
B = chr(92)
befund = e.pruefe_schreibrecht(
B + B + "NAS" + B + "Filme", probe=(False, "Netzwerkpfad nicht gefunden"),
erhoeht=False)
assert befund["zustand"] == e.FEHLER
assert "Administrator" not in befund["abhilfe"] or "keine" in befund["abhilfe"]
+11
View File
@@ -649,6 +649,17 @@ def main(argv=None) -> int:
if "--still" not in argv and "--ohne-assistent" not in argv:
ergebnis = assistent_starten()
if ergebnis.get("ok"):
# ⚠️ Und jetzt Rippy auch WIRKLICH starten.
#
# Der Knopf am Ende des Assistenten heisst „Rippy oeffnen". Bis
# hierher schloss er nur das Fenster, und danach passierte nichts
# mehr: Der Dienst lief nicht, kein Fenster ging auf. Ein Knopf,
# der etwas anderes tut als sein Beschriftung sagt, ist schlimmer
# als keiner.
programm = os.path.join(ergebnis.get("ziel") or
reg.standard_installationsordner(),
"Rippy.exe")
starte_fensterprozess(programm)
return 0
if ergebnis.get("abgebrochen"):
melden("Abgebrochen — es wurde nichts veraendert.")