Seufz. Mit Windows 7 gibt es auf 64-bittigen Maschinen echte Probleme wenn man versucht, Registry-Keys per VBA auszulesen.
Dieses VB-Script:
Dim objWShell
Dim RegPath: RegPath = "HKEY_LOCAL_MACHINE\SOFTWARE\pfad\zum\regkey"
Dim RegKey
Set objWShell = CreateObject("Wscript.shell")
RegKey = objWShell.RegRead(RegPath)
msgbox(regkey)
funktioniert blendend. Wenn man exakt diesen Code jedoch nach VBA stopft und rennen lässt, reagiert Windows 7 (64-bit) so:
Hat was mit 64-Bit Architektur und hastennichgesehn zu tun. Ein erster sehr cleverer Ansatz funktioniert nicht die Bohne, weil er, statt den tatsächlichen RegKey auszulesen, einen neuen unter HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\pfad\zum
erzeugt und dort einen Schlüssel namens regkey
anlegt. Meh.
Die Lösung lautet wie folgt:
zeig her...