' Dieses Script soll das Save - Verzeichnis von Diablo II auf verschie-'
' dene Pfade, je nach Version, setzen. '
' © by RAT198 11.11.2007 '
' -------------------------------------------------------------------- '
Option Explicit ' Mini-Debug
' -------------------------------------------------------------------- '
Dim WS
Dim FO
ReDim pfade(0)
Dim aktvers
Dim neuvers
Dim i
Dim basis
' -------------------------------------------------------------------- '
' *** HIER ANPASSEN:
basis = "C:\Programme\Diablo II\V1."
' *** Es wird hier davon ausgegangen, daß die verschiedenen Versionen
' *** in Verzeichnissen "C:\Programme\Diablo II\V1.00" bis
' *** "C:\Programme\Diablo II\V1.11" installiert sind!
' -------------------------------------------------------------------- '
initvars() ' Variablen initialisieren / vorbelegen
Call showvers(i) ' Aktuelle Version auslesen und anzeigen
' ' Auswertung Rückgabewert:
If (i = vbCancel) Then ' auf Abbrechen geklickt, Tschüß
Wscript.Quit
ElseIf (i = vbNo) Then ' Version nicht ändern
neuvers = aktvers
Else newvers() ' Neue Version abfragen
End If
startspiel() ' Spiel starten
' -------------------------------------------------------------------- '
Sub initvars()
Dim pfad, i
pfad = basis
For i = 0 To 11 Step 1
ReDim Preserve pfade(i)
pfade(i) = pfad & Right("0" & i, 2) & "\Save\"
Next
Set WS = WScript.CreateObject("WScript.Shell")
Set FO = WScript.CreateObject("Scripting.FileSystemObject")
aktvers = WS.RegRead("HKCU\Software\Blizzard Entertainment" & _
"\Diablo II\Save Path")
End Sub
' -------------------------------------------------------------------- '
Sub showvers(antw)
Dim frag
'*** Je nach Pfad bzw. Installationsordner die Zeile anpassen:
'*** Die Syntax ist: Mid(string, Startposition, Länge)
'*** Beispiel: string = "abcdefgh", die Länge ist also 8 Zeichen
'*** Mid(string, 8, 1) würde also "h" zurückgeben
'*** Mid(string, 3, 2) würde also "cd" zurückgeben
'*** Minus 9 für 1.xx\Save\
'*** Länge 4 für 1.xx
frag = "Zur Zeit ist Diablo Version " & Mid(aktvers, _
Len(aktvers) - 9, 4) & _
" eingestellt. Wollen Sie die Version wechseln?"
antw = MsgBox(frag, vbYesNoCancel + vbQuestion, "Version wechseln?")
End Sub
' -------------------------------------------------------------------- '
Sub newvers()
Dim text, i
text = "Folgende Versionen stehen zur Auswahl:" & vbCR
For i = 0 To UBound(pfade) Step 1
text = text & i & vbTab & "eingeben für Version " & _
Mid(pfade(i), Len(pfade(i)) - 9, 4) & vbCR
Next
i = InputBox(text, "Version wählen", 10)
' Raus bei Abbrechen oder Fehleingabe:
If (IsEmpty(i) OR i < 0 OR i > 11) Then
Wscript.Quit
End If
neuvers = pfade(i)
End Sub
' -------------------------------------------------------------------- '
Sub startspiel()
Dim start
'*** 5 abziehen für das "save\"
start = Left(neuvers, Len(neuvers) - 5) & "Diablo II.exe"
If NOT (FO.FileExists(start)) Then
MsgBox "Die Datei " & vbCR & start & vbCR & _
"wurde nicht gefunden!", vbOKOnly + vbCritical, "Fehler!"
Wscript.Quit
End If
' SAVE-Pfad in Registry schreiben:
WS.RegWrite "HKCU\Software\Blizzard Entertainment" & _
"\Diablo II\Save Path", neuvers, "REG_SZ"
' Anführungszeichen wegen Leerzeichen im Dateinamen:
start = """" & start & """"
WS.Run(start)
End Sub