VB-Homepage Tipp 185

Beispiel zum Schreiben von Registry Einträgen

Das war eigentlich fast zu erwarten, seit dem der Tipp mit dem Auslesen der Registryeinträge in der Tipp Datenbank vorhanden ist, mehren sich die Anfragen nach dem Pedant dazu - dem Schreiben von Einträgen in die Registry.

Klar, daß gehört hier mit her und das Problem bestand eigentlich nur darin, etwas geeignetes als Beispiel zu finden, denn nur was hinein schreiben bringt ja nichts, man will ja mit diesen Angaben auch was anfangen können.
Aber ich denk ich hab was passendes gefunden.

Mitunter bringen ja Programme ihre eigenen Dateiformate mit und von so einem Zustand gehen wir aus.
Der Tipp wird also zeigen, wie man ein Programm zum starten eines ganz bestimmten Dateityps in die Registry einträgt und wie man eine Dateiendung (Extension) mit dieser Anwendung verknüpft.

Sie benötigen für unseren kleinen Test lediglich ein neues Projekt mit einer Form und einem Command Button.

Nun tragen Sie unter
Allgemein/Deklarationen folgendes ein.
Private Declare Function RegCreateKey& Lib "advapi32.DLL" Alias "RegCreateKeyA" (ByVal hKey&, ByVal lpszSubKey$, lphKey&)
Private Declare Function RegSetValue& Lib "advapi32.DLL" Alias "RegSetValueA" (ByVal hKey&, ByVal lpszSubKey$, ByVal fdwType&, ByVal lpszValue$, ByVal dwLength&)

' Rückgabewerte
Const ERROR_SUCCESS = 0&
Const ERROR_BADDB = 1&
Const ERROR_BADKEY = 2&
Const ERROR_CANTOPEN = 3&
Const ERROR_CANTREAD = 4&

Const ERROR_CANTWRITE = 5&
Const ERROR_OUTOFMEMORY = 6&
Const ERROR_INVALID_PARAMETER = 7&
Const ERROR_ACCESS_DENIED = 8&

Const HKEY_CLASSES_ROOT = &H80000000
Const MAX_PATH = 256&
Const REG_SZ = 1

Als nächstes bekommt der
Command Button in der Click Aktion
die Anweisungen zum Anlegen des Registryeintrags des Programms und der dann registrierten Dateiendung.

Dim sKeyName As String
Dim sKeyValue As String
Dim ret&
Dim lphKey&

'Anlegen eines eigenen Schlüssels unter HKEY_CLASSES_ROOT
sKeyName = "VB Homepage" 'Der Schlüsselname
sKeyValue = "Tipps" 'Der Standardwert
ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)

'Um eine Dateiextension (-endung) einem Programm zuzuordnen
sKeyName = ".vbh" 'die Dateiendung (ebenfalls als Schlüssel unter HKEY_CLASSES_ROOT)
sKeyValue = "VB Homepage" 'dem Schlüssel zuordnen
ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)

'Dem Schlüssel eine Anwendung zuordnen
sKeyName = "VB Homepage" 'der eigene Schlüssel
sKeyValue = "notepad.exe %1" 'die zu startende Anwendung bei Doppelklick auf eine Datei mit der angegebenen Endung (hier der Editor)
sKeyValue2 = "notepad.exe,0" 'das Icon (hier das erste des Editors)
ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
ret& = RegSetValue&(lphKey&, "shell\open\command", REG_SZ, sKeyValue, MAX_PATH)
ret& = RegSetValue&(lphKey&, "shell\icon", REG_SZ, sKeyValue2, MAX_PATH)

Starten Sie nun das Programm und klicken auf den Command Button.
Ob Ihre Aktion erfolgreich war, können Sie dadurch testen, das Sie mit dem Editor eine Datei anlegen, der Sie beim Abspeichern die Dateiendung *.vbh verpassen.
Gehen Sie nun in den Explorer und sehen sich diese Datei an.
Normalerweise müßte diese Datei, wenn nicht registriert, ein weißes Blatt als Symbol erhalten. Jetzt sollte Sie aber das Editorsymbol anlachen und wenn Sie die Datei Doppelklicken, sollte sich auch der Editor öffnen.

Noch ein Tipp zum Schluß - gehen Sie vorsichtig mit Registryeinträgen um, sonst kann es böse Überraschungen geben.


Tipp-Download

Quelle :

Zurück zur Übersichtsseite