![]() |
||
![]() |
Skript-Absturz durch Registry-Schlüsselprüfung verhindernSie programmieren VisualBasic-Scripte, mit denen Sie unter anderem Schlüssel in der Registrierungs-Datenbank bearbeiten. Wenn ein angesprochener Schlüssel nicht existiert, stürzt das Skript mit einem Laufzeitfehler einfach ab. Sie wollen solche Abstürze vermeiden. Die gewünschte Funktion müssen Sie selbst entwickeln und in Ihr Programm integrieren. VBScript kennt leider keine Anweisung wie die Methode »File Exists()« vom Objekt »FileSystem«, die vor dem Lesezugriff die Existenz eines
Function RegKeyExist (szRegKey)Mit dem Parameter »szRegKey« übergeben Sie den Schlüssel, dessen Existenz die Funktion in der Registrierungs-Datenbank prüfen soll. Als Ergebnis der Kontrolle gibt sie »True« (Schlüssel vorhanden) oder »False« (Schlüssel fehlt) zurück. Sie können die Funktion in Ihrer Programmierung wie folgt einsetzen: Dim objShellUnd so funktioniert »RegKeyExist()«: Zuerst wird das Objekt »objWshShell« vom Typ »WScript.Shell« für den Zugriff auf die Registrierungs-Datenbank erzeugt. Als nächstes versucht die Funktion mit »szValue = objWshShell.Reg-Read(szRegKey)«, den aktuellen Wert aus dem mit »szRegKey« übergebenen Schlüssel zu lesen. Anschließend prüft sie, ob die Eigenschaft »number« des allgemeinen Error-Objektes »err« ungleich »0« ist. In diesem Fall hat der zuvor ausgeführte Befehl einen Fehler produziert, weil der gewünschte Schlüssel in der Registry nicht existiert. Dann bestimmt »RegKeyExist = False« den Wert »False« als Rückgabewert. Anderenfalls wird »True« zurückgeliefert. ! Achtung: Sie müssen Windows am Beginn der Funktion mit »On Error Resume Next« anweisen, im Fehlerfall mit der Ausführung des nächsten Befehls fortzufahren. Sonst beendet sich das Programm wieder mit einem Laufzeitfehler, sobald es den Wert aus einem nicht existenten Schlüssel zu lesen versucht. |
![]() |