MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access - MOF-FAQ > MOF-FAQ - Verschiedenes
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 15.01.2003, 18:06   #1
Stefan Kulpa
MOF Meister
MOF Meister
Tipp Einfacher Zugriff auf die Registry

Neben der Nutzung des Win32-API besteht noch die Möglichkeit, das Windows Scripting Host (WSH) für Zugriffe auf die Registry zu nutzen.

Weniger bekannt ist die Möglichkeit, eine kleine DLL von Microsoft zu nutzen, die 40 KB "große" regobj.dll.
Es handelt sich dabei um einen ActiveX-Server, dessen Funktionalität nach dem Setzen eines entsprechenden Verweises sofort zur Verfügung stehen.
Mitgeliefert wird noch eine Microsoft Word Datei mit der Beschreibung und einigen Beispielen (alles wiedermal in Englisch...).

Microsoft bieten dieses Download auf folgender Seite an:

Add-In and Component Downloads (dort: RegObj.dll - ActiveX Manipulation of the Registry).

oder direkt: Die Setup-Datei RegObji.exe(169 KB).

Obwohl diese ActiveX-DLL vom 25. Juni 1997 stammt, funktioniert sie einwandfrei (getestet unter WXP SP1, VB6 SP5).

Der ActiveX-Server bietet verschiedene Methoden und Objekte an, um Schlüssel, Unterschlüssel und Werte zu erstellen, zu suchen, zu ändern und zu löschen.

Einzige Voraussetzung: man sollte schon mit dem Aufbau der Registry vertraut sein und natürlich bei allen Zugriffen auf die Registry Vorsicht walten lassen (aber das weiss ja jeder...):

Nachfolgend zwei simple Beispiel zur Nutzung des ActiveX-Servers:


Code:

Option Explicit
'// ---------------------------------------------------------------------------------
'// Beispielcode zur Nutzung der regobj.dll (vom 25. Juni 1997!)
'// Microsoft Registration Manipulation Classes
'// ---------------------------------------------------------------------------------
 
Sub Beispiel01()
'// ---------------------------------------------------------------------------------
'// Alle Unterschlüssel unterhalb von HKEY_CLASSES_ROOT\CLSID auflisten!
'// ---------------------------------------------------------------------------------
    Dim objSubKey As RegKey
    Dim objRegKey As RegKey
    Set objRegKey = RegKeyFromString("\HKEY_CLASSES_ROOT\CLSID")
 
    For Each objSubKey In objRegKey.SubKeys
        Debug.Print objSubKey.Name
    Next objSubKey
    Debug.Print objRegKey.SubKeys.Count & " Einträge gefunden!"
 
End Sub
 
Sub Beispiel02()
 
    On Error GoTo Err_Beispiel02
 
    Const csMYSUBKEY As String = "EIC Tools"
    Dim objValue    As RegValue
    Dim objNewKey   As RegKey
    Dim objRootKey  As RegKey
'// ---------------------------------------------------------------------------------
'// Programm eigene Daten speichern, lesen und wieder löschen
'// ---------------------------------------------------------------------------------
    Set objRootKey = RegKeyFromString("\HKEY_CURRENT_USER\Software")
'// ---------------------------------------------------------------------------------
'// Neuen Schlüssel unterhalb von \HKEY_CURRENT_USER\Software anlegen
'// ---------------------------------------------------------------------------------
    objRootKey.SubKeys.Add csMYSUBKEY
    Set objNewKey = objRootKey.SubKeys(csMYSUBKEY)
'// ---------------------------------------------------------------------------------
'// Werte unterhalb des neuen Schlüssel anlegen
'// ---------------------------------------------------------------------------------
    objNewKey.Values.Add vbNullString, "Default-Wert", RegValueType.rvString
    objNewKey.Values.Add "Werte1", "Wert1", RegValueType.rvString
    objNewKey.Values.Add "Werte2", 12345, RegValueType.rvLong
'// ---------------------------------------------------------------------------------
'// Jetzt die Werte wieder auslesen
'// ---------------------------------------------------------------------------------
    For Each objValue In objNewKey.Values
        With objValue
            Debug.Print "Name: "; .Name; " Typ: "; .Type; " Wert: "; .Value
        End With
    Next
'// ---------------------------------------------------------------------------------
'// Jetzt die Werte einzeln wieder löschen
'// ---------------------------------------------------------------------------------
    For Each objValue In objNewKey.Values
        objNewKey.Values.Remove objValue.Name
    Next
'// ---------------------------------------------------------------------------------
'// Und zuletzt den Unterschlüssel selbst entfernen
'// ---------------------------------------------------------------------------------
    objRootKey.SubKeys.Remove csMYSUBKEY
 
    Exit Sub
 
Err_Beispiel02:
    MsgBox "Fehler #" & Err.Number & vbCrLf & Err.Description, vbExclamation
 
End Sub
Code eingefügt mit dem MOF Code Converter

Viel Spaß beim ausprobieren!

__________________

Stefan
Stefan Kulpa ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.01.2003, 22:10   #2
Sascha Trowitzsch
MOF Guru
MOF Guru
Standard

Einfach prima, was andere immer wieder für einen finde...
Sascha Trowitzsch ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.06.2003, 14:26   #3
Joachim Hofmann
MOF Koryphäe
MOF Koryphäe
Standard

Die "Fußgänger" können für anwendungsinterne Einstellungen auch die eingebauten VB(A)-Funktionen GetSetting, SaveSetting, DeleteSetting und GetAllSettings benutzen.

(Unästhetisch dabei: Sie tragen die Schlüssel unter "...\Software\VB and VBA Program Settings\<hier folgt erst die Anwendung selbst>..." ein.)

Geändert von Joachim Hofmann (11.06.2003 um 14:28 Uhr).
Joachim Hofmann ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.