Hallo zusammen,
Im Anhang findet Ihr ein kleines Mort-Script, das die wichtigen INI-Dateien vom MEDION-Navigator5.1 bzw. vom Navigon Mobile Navigator 5.1 bei jedem Start in das Scriptverzeichnis sichert. Vorher findet eine einfache Prüfung der INI-Dateien statt, da nach meinen Erfahrungen die INI, wenn sie denn beschädigt ist, die Dateilänge 0 Bytes hat und somit leer ist.
Sollte dies der Fall sein, wird automatisch die letzte Sicherungskopie ins Navigatorverzeichnis zurückgeschrieben und dann der Navigator normal gestartet. Für den Mobile-Navigator müssen allerdings noch die Dateipfade angepasst werden, da ich diese nicht kenne.
Hinweis: Dieses Script ist lediglich die Standalone-Auskopplung einer Unterroutine aus meinem Script Navi-Runner, das allerdings speziell für den Medion MD96700 angepasst ist. Daher bitte keine Fragen nach großartigen Erweiterungen ;).
Wer möchte, kann den Codeschnipsel aber auch gerne in eigene Start-Scripts einbinden (Gruß an Zappa :D)
Viel Spass damit.
Gruß, Argasha
#################################################
# Ini-Backup.mscr; Version 1.0 Autor 0.Wallner 11.02.2006
#################################################
# Benötigt zusätzlich das Programm: 'Autorun.exe' des Interpreters
# 'MortScript' Ab Version 3.1RC6 oder höher.
# Zu erhalten unter: http://www.sto-helit.de (Freeware).
#
# Nur Für nichtkommerziellen Gebrauch. Verwendung auf eigene Gefahr!!
# Betriebssystem Microsoft Windows Mobile 5.0 auf Medion MD96700 getestet,
# andere sollten aber auch laufen, da keine hardwarespezifischen Befehle
# verwendet wurden.
#
# Beschreibung: Das Script startet den Medion Navigator 5.1 oder den
# Navigon Navigator 5.1 falls er noch nicht gestartet ist.
# (Bitte unten den Pfad anpassen!!)
# Das Script erstellt automatisch Sicherungskopien der wichtigen
# Navigator-Dateien NavLib.ini, prefs.ini und spgps,ini, da diese Dateien
# manchmal beschädigt werden, speziell wenn der Navigator auf der Speicherkarte
# installiert ist. Wenn beim Start festgestellt wird, das eine dieser Dateien
# defekt ist, wird automatisch die letzte Sicherungskopie zurückgeschrieben.
#
# INSTALLATION: Als erstes 'MortSkript' wie auf dessen Hompage beschrieben
# installieren. und einmalig die Mortscript.exe im MortScript
# Installationsverzeichnis starten.
# Nach erstmaligem Start der Mortscript.exe im MortScript Verzeichnis reicht
# es, dieses Script in ein beliebiges Verzeichnis auf dem PDA
# zu kopieren, da die Datei-Endung .MSCR bereits registriert ist und das Script
# beim Aufrufen direkt gestartet wird.
# Das Script verhält sich dann wie ein Programm, für das man in
# Windows\Startmenü einen Link erzeugen und diesen anschliessend auf einen
# Hardware-Button (Navigator-Taste) legen kann.
##################################################
##################################################
#### Variablen, die vom User verändert werden können ####
##################################################
#### Preset: Pfad zum Navigator-Verzeichnis angeben
Set MNPath, "\Storage Card\Programme\MEDION\MEDION-Navigator"
#### Preset: Dateiname der Navigator EXE angeben
Set MNExe, "MEDION-Navigator.exe"
#### Preset: Name des Navigator-Fensters (Fenstertitel)angeben
Set NaviWindow, "Medion-Navigator"
###################################################
#### Programm-Start #####
###################################################
### Abfrage, ob Navigator - EXE vorhanden
If Not fileExists {%MNPath% \ %MNExe%}
Message "Navigator nicht gefunden!^CR^^LF^Bitte Pfade prüfen/installieren", "[INICopy V1.0]"
Exit
EndIf
### Aufruf Unterroutine zur Dateipüfung der Navigator-INIs mit anschliessender
### Sicherungskopie, wenn Dateien OK.
If not wndExists %NaviWindow%
Call INICopy
else
Message "Navigator läuft schon!^CR^^LF^INI-Sicherungskopie nicht möglich!^CR^^LF^Beende Script.", "[INICopy V1.0]"
EndIf
#### Start des Navigators ###
If not wndExists %NaviWindow%
run {%MNPath% \ %MNExe%}
WaitFor Medion-Navigator,20
EndIf
Exit
#### Prüfung der INI-Dateien, Wenn OK, Erstellung der Sicherungskopien. Wenn
#### Dateifehler, zurückschreiben der letzten Sicherung, falls vorhanden.
Sub INICopy
GetSystemPath ScriptPath, ScriptPath
IniRead {%MNPath% \ "prefs.ini"}, "RoutingOptionsPrefs", "standard", INICheck
#Troubleshooting - Message %INICheck%, "Wert Prefs.ini ="
If {%INICheck% eq ""}
Message "Prefs.ini defekt!!^CR^^LF^Schreibe Sicherungskopie zurück...", "[INICopy V1.0]"
If fileExists {%ScriptPath% \ "prefs.ini"}
Copy {%ScriptPath% \ "prefs.ini"}, {%MNPath% \ "prefs.ini"}, 1
else
Message "Ooops! Leider noch keine Sicherungskopie vorhanden!^CR^^LF^Bitte prefs.ini selbst reparieren.", "[INICopy V1.0]"
Exit
EndIf
else
#Troubleshooting - Message "Erstelle Sicherungskopie von Prefs.ini "
Copy {%MNPath% \ "prefs.ini"}, {%ScriptPath% \ "prefs.ini"}, 1
EndIf
IniRead {%MNPath% \ "NavLib.ini"}, "Properties", "ConfigFilesDir", INICheck
#Troubleshooting - Message %INICheck%, "Wert NavLib.ini ="
If {%INICheck% eq ""}
Message "NavLib.ini defekt!!^CR^^LF^Schreibe Sicherungskopie zurück...", "[INICopy V1.0]"
If fileExists {%ScriptPath% \ "NavLib.ini"}
Copy {%ScriptPath% \ "NavLib.ini"}, {%MNPath% \ "NavLib.ini"}, 1
else
Message "Ooops! Leider noch keine Sicherungskopie vorhanden!^CR^^LF^Bitte NavLib.ini selbst reparieren.", "[INICopy V1.0]"
Exit
EndIf
else
#Troubleshooting - Message "Erstelle Sicherungskopie von NavLib.ini "
Copy {%MNPath% \ "NavLib.ini"}, {%ScriptPath% \ "NavLib.ini"}, 1
EndIf
IniRead {%MNPath% \ "spgps.ini"}, "Parser", "AutoDetectTimeout", INICheck
#Troubleshooting - Message %INICheck%, "Wert spgps.ini ="
If {%INICheck% eq ""}
Message "Spgps.ini defekt!!^CR^^LF^Schreibe Sicherungskopie zurück...", "[INICopy V1.0]"
If fileExists {%ScriptPath% \ "spgps.ini"}
Copy {%ScriptPath% \ "spgps.ini"}, {%MNPath% \ "spgps.ini"}, 1
else
Message "Ooops! Leider noch keine Sicherungskopie vorhanden!^CR^^LF^Bitte spgps.ini selbst reparieren.", "[INICopy V1.0]"
Exit
EndIf
else
#Troubleshooting - Message "Erstelle Sicherungskopie von spgps.ini"
Copy {%MNPath% \ "spgps.ini"}, {%ScriptPath% \ "spgps.ini"}, 1
EndIf
EndSub