1 1 1 1 1 1 1 1 1 1 Rating 5.00 (1 Vote)

Problemstellung:
Diese Bsp-DB beschäftigt sich mit Lösungen um mit VB(A) die Windows Registrydatei zu lesen
bzw. bearbeiten zu können
Um mittels VB(A) mit der Registry arbeiten zu können sind eine Vielzahl von API-Funktionen erforderlich.
Alle erforderliche Aufrufe, Auflistungen und Funktionen befinden sich im Modul: mod_Registry der Bsp-DB
Um alle Funktionen zu verwenden ist es nur erforderlich das Modul in die betreffende DB zu importieren.

Aber wie geht das? Das erfahrt Ihr im Folgenden.

Voraussetzungen:
Das Bsp ist ab A00 lauffähig


Einzige Einschränkung ist unter Windows Vista das Auslesen der ProductId (s. Bsp-DB).
Dies ist nicht möglich da dieser Schlüssel nicht existiert

Funktionsweise:
Leider ist es nicht möglich den Registry-Editor zu öffnen und gleich einen ein kompletten Schlüssel mit zu geben
damit der Editor direkt dort hin springt.
Windows speichert aber den letzten aufgerufenen Schlüssel im Schlüssel:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\LastKey
Der folgende Code macht sich diesen Umstand zu nutze (s. mod_Regedit )
Unter Windws Vista tritt, eigenartigerweise, der Laufzeitfehler 5 beim Aufruf des
Registryeditors mittels Shell-Methode auf.
Deswegen ist zusätzlich die ShellExecute-Funktion mit enthalten.
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
       (ByVal Hwnd As Long, ByVal Ipoperation As String, _
        ByVal Ipfile As String, ByVal Ipparameters As String, _
        ByVal Ipdirectory As String, ByVal nshowcmd As Long) As Long
        
Public Sub Open_RegEdit(oFrm As Form, sRegkey As String)

    On Error GoTo Open_RegEdit_Error

    Dim sLastkey As String
    Dim DoOpenFile As Long

    
    sLastkey = fWertLesen(HKEY_CURRENT_USER, _
              "Software\Microsoft\Windows\CurrentVersion\Applets\Regedit", "LastKey")

    If sLastkey <> sRegkey Then
        fStringSpeichern HKEY_CURRENT_USER, _
        "Software\Microsoft\Windows\CurrentVersion\Applets\Regedit", "LastKey", sRegkey
    End If
    
    Shell ("regedit.exe")
    
    On Error GoTo 0
    Exit Sub

Open_RegEdit_Error:
    If Err.Number = 5 Then
        DoOpenFile = ShellExecute(oFrm.Hwnd, vbNullString, "regedt32.exe", _
                     vbNullString, vbNullString, 1)
    ElseIf Err.Number = 53 Then
        Shell ("regedt32.exe")
    Else
        Dim strErrString As String
        strErrString = "Error Information..." & vbCrLf
        strErrString = strErrString & "Error#: " & Err.Number & vbCrLf
        strErrString = strErrString & "Description: " & Err.Description
        MsgBox strErrString, vbCritical + vbOKOnly, _
                           "Error in procedure Open_RegEdit of Modul Regedit"
    End If
End Sub

Die Prozedur erwartet 2 Parameter.

oFrm = das Formular, meistens Me.
sRegKey = der Schlüssel zu dem gesprungen werden soll.

Zuerst wird der gespeicherte Schlüssel gelesen und mit dem übergebenen verglichen.
Sind diese ungleich wird der übergebene gespeichert und der Registryeditor geöffnet.
z.B.:

1
Open_RegEdit Me, "HKEY_CURRENT_USER\Software\TommyK\BspDB"

In der Bsp-DB sind folgende Lösungen enthalten:

1. Auslesen der Windows ProductId (nicht bei Windows Vista)
2. Auslesen des Run-Keys (Autostart der Registry)
3. Lesen, Schreiben und Löschen eines Schlüssels.
4. Bsp. zum Speichern von Formularpostionen in der Registry

Dateien:
(0 Stimmen)

Arbeiten mit der Registry

ab A00

Die Zip-Datei enthält eine Version ab A00

Datum 05.02.2018
Dateigröße 41.14 KB
Download 952

Ähnliche Artikel

Kommentar schreiben

Sicherheitscode
Aktualisieren

Login Form

Neueste Artikel

SQL zu VBA Konverter
26. Oktober 2018
Problemstellung: Gibt es eine Möglichkeit SQL-Code einer Abfrage so zu konvertieren das der Code in VBA genutzt werden kann? Lösung: Bis Access 2010 gibt das Tool "SmartTools SQL aus Abfragen 3.0"...
1.png2.png1.png2.png7.png2.png7.png
Heute27
Gestern105
Diese Woche235
Dieser Monat1527
Total1212727

  • IP: 52.6.70.202
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

2
Online

19. Dezember 2018

Letzte Kommentare

  • Trusted Locations Manager

    Tommy Admin 13.07.2018 13:06
    RE: Trusted Locations Manager
    Hallo Matthias, aus Ermangelung einer 64bit Version kann ich das leider nicht prüfen. Tut mir leid. Gruss ...

    Weiterlesen...

     
  • Trusted Locations Manager

    Matthias 13.07.2018 06:48
    Funktioniert nicht
    Habe gerade den TL-Manager installiert. Nach dem Start sagt er mir, dass es kein Office erkennen ...

    Weiterlesen...