Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1768to1772
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 Wert mit VBA auslesen

Registry Wert mit VBA auslesen
02.07.2020 10:41:03
Justus
Hallo zusammen,
ich versuche aktuell einen Wert aus der Registry auszulesen. Genauer gesagt, möchte ich den "Friendly App Name" vom Adobe Reader auslesen, um später aus VBA zu dem entsprechenden Fenster wechseln zu können.
Dieser liegt hier:
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache\
Schlüssel: C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe.FriendlyAppName
Nachdem ich mich gefühlt durch alle Foreneinträge gewühlt habe, bin ich nun am resignieren.
Hier mein Code:
Set WSHShell = CreateObject("WScript.Shell")
AppPath = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AcroRd32.exe\")
AppName = WSHShell.RegRead("HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache\" & AppPath & ".FriendlyAppName")
Allerdings erhalte ich dabei folgende Fehlermeldung:
Laufzeitfehler '-2147024894 (80070002)':
Ungültige Wurzel in Registrierungsschlüssel "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache\C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe.FriendlyAppName"
Wie muss ich meinen Code verändern, um auf den entsprechenden Schlüssel zugeifen zu können?
Vielen Dank für eure Hilfe im Voraus.
Beste Grüße

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Registry Wert mit VBA auslesen
02.07.2020 10:58:01
Zwenn
Hallo Justus,
das WSHShell kannst Du einfach weglassen:

Sub RegLesen()
MsgBox RegKeyRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ _
AcroRd32.exe\")
MsgBox RegKeyRead("HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\ _
Windows\Shell\MuiCache\")
End Sub
Bei mir zeigt er allerdings nur den Pfad an. Der RegEintrag für den AppName scheint (bei mir) nicht vorhanden zu sein.
Viele Grüße,
Zwenn
AW: Registry Wert mit VBA auslesen
02.07.2020 12:42:27
Justus
Hi Zwenn,
danke für deine Antwort. Das löst allerdings nicht mein Problem, da es ja genau um den Wert geht, der in der Registry für das entsprechende Programm hinterlegt ist. Siehe angehängter Screenshot.
Userbild
Was ich als Wert haben will, ist ein String in dem steht: "Adobe Acrobat Reader DC"
Beste Grüße
Anzeige
Registry Wert mit VBA auslesen
02.07.2020 18:24:01
Anton
Hallo Justus,
probier's hiermit:
Code in Zwischenablage:

Option Explicit
Sub b()
  Dim HKEY_CURRENT_USER As Long, oReg As Object, arrApps    
  Dim strKeyPath, strWert, strApp, sProg As String  
  sProg = "firefox.exe" 'anpassen
  HKEY_CURRENT_USER = &H80000001
  Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")  
  strKeyPath = "Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache"
  oReg.EnumValues HKEY_CURRENT_USER, strKeyPath, arrApps
  If Not IsArray(arrApps) Then Exit Sub      
  For Each strApp In arrApps  
    If InStr(1, LCase(strApp), LCase(sProg & ".FriendlyAppName")) > 0 Then    
      oReg.GetStringValue HKEY_CURRENT_USER, strKeyPath, strApp, strWert  
      Debug.Print strApp & vbTab & strWert
    End If  
  Next
  Set oReg = Nothing  
End Sub

mfg Anton
Anzeige
@justus.boehm oT
06.07.2020 15:28:21
Anton
AW: Registry Wert mit VBA auslesen
06.07.2020 15:30:10
Justus
Hallo Anton,
Vielen Dank! Das löst mein Problem.
Beste Grüße
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge