Feature: Wrapper, Logging und Doku überarbeitet

- Debug-Logging optional gemacht, den Legacy-Wrapper portabler aufgebaut (relative Pfade, Debug-Weitergabe, Python-Fallback) und die README für Endanwender und Entwickler klarer neu strukturiert.
This commit is contained in:
Andre
2026-04-18 17:10:23 +02:00
parent a00bd1ed30
commit d91735a2fa
5 changed files with 242 additions and 94 deletions
+42 -13
View File
@@ -1,21 +1,50 @@
Set WshShell = CreateObject("WScript.Shell")
' Prozessname aus dem ersten Argument (Steam %command%) extrahieren
Dim exePath, fso, exeName
Set fso = CreateObject("Scripting.FileSystemObject")
exePath = WScript.Arguments(0)
Dim baseDir, pythonwPath, focusfixPath
baseDir = fso.GetParentFolderName(WScript.ScriptFullName)
pythonwPath = fso.BuildPath(baseDir, ".venv\Scripts\pythonw.exe")
focusfixPath = fso.BuildPath(baseDir, "focusfix.py")
If Not fso.FileExists(pythonwPath) Then
pythonwPath = "pythonw.exe"
End If
Dim debugEnabled, exePath, exeName, gameCmd, arg, i
debugEnabled = False
exePath = ""
gameCmd = ""
For i = 0 To WScript.Arguments.Count - 1
arg = WScript.Arguments(i)
If arg = "-d" Or arg = "-debug" Or arg = "--debug" Then
debugEnabled = True
Else
If exePath = "" Then
exePath = arg
End If
gameCmd = gameCmd & """" & arg & """ "
End If
Next
If exePath = "" Then
WScript.Quit 1
End If
' Prozessname aus dem ersten nicht-Wrapper-Argument (Steam %command%) extrahieren
exeName = fso.GetBaseName(exePath)
' FocusFix Script unsichtbar starten (pythonw = kein Konsolenfenster)
WshShell.Run """C:\Projekte\Steam_backgroud_fix\.venv\Scripts\pythonw.exe"" ""C:\Projekte\Steam_backgroud_fix\focusfix.py"" --process """ & exeName & """", 0, False
Dim focusfixCmd
focusfixCmd = """" & pythonwPath & """ """ & focusfixPath & """"
If debugEnabled Then
focusfixCmd = focusfixCmd & " -debug"
End If
focusfixCmd = focusfixCmd & " --process """ & exeName & """"
WshShell.Run focusfixCmd, 0, False
' Spiel starten: alle Argumente (= Steam %command%) zusammensetzen und ausführen
Dim gameCmd, i
gameCmd = ""
For i = 0 To WScript.Arguments.Count - 1
gameCmd = gameCmd & """" & WScript.Arguments(i) & """ "
Next
If gameCmd <> "" Then
' Spiel starten: alle übrigen Argumente (= Steam %command%) zusammensetzen und ausführen
If Trim(gameCmd) <> "" Then
WshShell.Run gameCmd, 1, False
End If