2.3.15 Wie kann man auf die Windows-Registry zugreifen?
Man kann lesend auf die Windows-Registry mit den mitgelieferten Makros aus der Bibliothek "ImportWizard" zugreifen. Dort steht die Funktion  "QueryValue" zur Verfügung.

QueryValue braucht folgende Parameter:
BaseKey, den Hauptschlüssel
sKeyName, den Schlüsselnamen
sValueName, den Eintrag

Folgende Konstanten sind für den jeweiligen Hauptschlüssel festgelegt:

Public Const HKEY_CLASSES_ROOT
Public Const HKEY_CURRENT_USER
Public Const HKEY_LOCAL_MACHINE
Public Const HKEY_USERS

Weitere Konstanten stehen im Quellcode von ImportWizard.


Aber Achtung:  Wenn man das Makro das erstemal startet nach dem man OpenOffice gestartet hat kommt immer ein leerer String zurück.
Die Ursache für diesen Fehler habe ich leider noch nicht gefunden.


Das folgende Beispiel liest den Produktcode von Windows aus:

Sub Main
  BasicLibraries.LoadLibrary("ImportWizard")
'oder wenn Zugriff aus einem Dokument erfolgt: GlobalScope.BasicLibraries.LoadLibrary("ImportWizard")
  sTemplateKeyName = "Software\Microsoft\Windows\CurrentVersion"
  sTemplateValueName = "ProductID"
  sProductID = QueryValue(HKEY_LOCAL_MACHINE, sTemplateKeyName, sTemplateValueName)
  msgbox sProductID
End Sub