Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1760to1764
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Registry "Section" auslesen

Registry "Section" auslesen
04.06.2020 09:54:29
Peter
Hallo Allwissende,
ich möchte aus der Registry nicht die Keys auslesen, sondern alle "Section-Namen", die unter einem "App Schlüssel" vorhanden sind.
Beispiel: Ich habe folgende Registry Schlüssen angelegt:
SaveSetting "myApp", "Global1", "Eintrag1", "x"
SaveSetting "myApp", "Global1", "Eintrag2", "y"
SaveSetting "myApp", "Global1", "Eintrag3", "z"
SaveSetting "myApp", "Global2", "Eintrag1", "x"
SaveSetting "myApp", "Global2", "Eintrag2", "y"
SaveSetting "myApp", "Global2", "Eintrag3", "z"
etc.
Wie kann ich alle "Section Namen, die unter "myApp" gespeichert sind (also "Global1", "Global2", etc.) auslesen, nicht die einzelnen Schlüssel und deren Werte?
GetSetting("myApp", "Global1", "Eintrag1") setzt ja den Section Namen voraus und liest die einzelnen Schlüsselwerte aus.
Ich brauche aber nur die Section Namen.
Ich konnte leider nirgendswo etwas dazu finden. Geht das überhaupt?
Vielen Dank für Eure Tipps.
Grüße
Peter

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Registry "Section" auslesen
04.06.2020 18:11:22
Anton
Hallo Peter,
probier's hiermit:
Code in Zwischenablage:

Option Explicit
Sub alle_settings_in_tabelle()
  Dim HKEY_CURRENT_USER As Long, zeile As Integer, oReg As Object      
  Dim strValPath As String, strApp, strSection  
  Dim strKeyPath As String, strWert As String, i As Integer    
  Dim arrApps(), arrSections(), arrSchluesseln()
  HKEY_CURRENT_USER = &H80000001
  zeile = 2
  With Tabelle1  'anpassen
    .Cells.Clear
    .Cells(1, 1) = "Appname"
    .Cells(1, 2) = "Section"
    .Cells(1, 3) = "Schlüssel"
    .Cells(1, 4) = "Wert"
    Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")  
    strKeyPath = "Software\VB and VBA Program Settings"
    oReg.EnumKey HKEY_CURRENT_USER, strKeyPath, arrApps
    If Not IsArray(arrApps) Then Exit Sub      
    For Each strApp In arrApps  
      .Cells(zeile, 1) = strApp
      zeile = zeile + 1
      oReg.EnumKey HKEY_CURRENT_USER, strKeyPath & "\" & strApp, arrSections
      If IsArray(arrSections) Then  
        For Each strSection In arrSections  
          .Cells(zeile, 2) = strSection 'Sectionnamen
          zeile = zeile + 1
          strValPath = strKeyPath & "\" & strApp & "\" & strSection
          oReg.EnumValues HKEY_CURRENT_USER, strValPath, arrSchluesseln
          If IsArray(arrSchluesseln) Then  
            For i = 0 To UBound(arrSchluesseln)  
              .Cells(zeile, 3) = arrSchluesseln(i)
              oReg.GetStringValue HKEY_CURRENT_USER, strValPath, arrSchluesseln(i), strWert  
              .Cells(zeile, 4) = strWert
              zeile = zeile + 1
            Next
          End If  
        Next
      End If  
    Next
  End With  
End Sub

mfg Anton
Anzeige
AW: Registry "Section" auslesen
05.06.2020 08:23:42
Peter
Hallo Anton,
vielen Dank für die schnelle Hilfe! WOW!
Funktioniert super. Ich verstehe jede Zeile :-).
Aber wie Du auf die Parameter und deren Schreibweise von "GetObjects" gekommen bist, wird mir wohl für immer ein Geheimnis bleiben.
Habe selten soviel geballte Kompetenz an einer Stelle gesehen, wie hier in diesem Forum.
Respekt!
Viele Grüße
Peter

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige