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. |