simpsonsfan
Captain
- Registriert
- Feb. 2008
- Beiträge
- 3.408
Ich würde vorschlagen, du erstellst eine Batch, mit der du das Spiel aufrufst, dann rufst du eine Schleife auf, in der du immer wieder den Spielstand sicherst, bis das Programm geschlossen wird. Dazu prüfst du in jedem Schleifendurchgang mit tasklist, ob du das Programm noch unter den laufenden Prozessen findest.
So in der Art etwa:
So in der Art etwa:
Code:
@echo off
REM Programm starten. Die ersten "" braucht man nur wegen der Leerzeichen im Programmpfad, Eigenheit von start, nicht so wichtig
start "" "C:\Program Files\Microsoft Games\Solitaire\Solitaire.exe"
REM 5 Sekunden warten, falls das Spiel erstmal etwas Zeit braucht zum laden
timeout /t 5
echo Programm gestartet
REM erste Sicherung
if exist backup5.7z del backup5.7z
if exist backup4.7z ren backup4.7z backup5.7z
if exist backup3.7z ren backup3.7z backup4.7z
if exist backup2.7z ren backup2.7z backup3.7z
if exist backup.7z ren backup.7z backup2.7z
"C:\Program Files\7-Zip\7z.exe" a "backup" "zu_scihernde_Datei/ordner"
:Sprungmarke
REM 5 Minuten warten zwischen jedem Durchgang
timeout /t 300
REM Überprüfen, ob der Prozess noch läuft (find sucht in der Ausgabe von tasklist. Wenn es den Prozess nicht findet, gibt es einen Fehler aus)
tasklist /FI "IMAGENAME eq solitaire.exe" 2>NUL | find /I /N "solitaire.exe">NUL
if "%ERRORLEVEL%" neq "0" goto :ende
if exist backup5.7z del backup5.7z
if exist backup4.7z ren backup4.7z backup5.7z
if exist backup3.7z ren backup3.7z backup4.7z
if exist backup2.7z ren backup2.7z backup3.7z
if exist backup.7z ren backup.7z backup2.7z
"C:\Program Files\7-Zip\7z.exe" a "backup" "zu_scihernde_Datei/ordner"
goto :Sprungmarke
:ende
echo Programm wurde beendet