Ook om de waarde van andere registersleutels uit te lezen, moet u altijd eerst vaststellen hoe de sleutel is opgebouwd. Hier komt u achter door eerst met de Register Editor de betreffende sleutel op te zoeken:
- Kies Start >> (Uitvoeren) en typ regedit.
- Druk op Enter.
In de Register Editor ziet u de inhoud van het register in een boomstructuur weergegeven, net als in Windows Verkenner. Als voorbeeld bekijkt u de sectie:
HKEY_CURRENT_USER\AppEvents\EventLabels\BlockedPopup
Alle waarden zijn in de sleutels opgeslagen met een naam, een typeaanduiding en de waarde zelf. Om een waarde uit te lezen in VBA moet niet alleen de sectie binnen het register kenbaar worden gemaakt, maar ook de naam van de sleutel die u wilt lezen. De standaardsleutel (Default) vraagt u op door de sleutelnaam leeg te laten. In het geval van het beschreven voorbeeld leest u de registersleutelwaarde uit met onderstaande routine:
Sub voorbeeldRegisterUitlezen() MsgBox System.PrivateProfileString("", _ "HKEY_CURRENT_USER\AppEvents\EventLabels\BlockedPopup", "") End Sub
Deze routine zit reeds in het voorbeelddocument. U kunt hem in elk ander document toevoegen door de Visual Basic Editor in Word te openen:
- Druk in Word op sneltoets Alt+F11.
- Voeg daar een module in via Invoegen >> Module.
- Type bovenstaande code over in de nieuwe module.
U kunt de code starten vanuit de Visual Basic Editor (druk op F5) of vanuit Word. In het laatste geval keert u eerst terug naar Word via Alt+F11; daar drukt u op Alt+F8 om de nieuwe macro te starten.
De functie PrivateProfileString heeft drie argumenten: File, Section en Key. Het eerste argument hoeft u niet verplicht in te vullen - een lege waarde leidt automatisch naar het Windows Register. Het tweede argument bevat het pad naar de sleutel (zonder afsluitende back-slash) en het laatste bevat de sleutelnaam. Let op dat alle drie de argumenten tussen dubbele aanhalingstekens worden gezet want het zijn tekstwaarden (type String) en dat de uit te lezen waarden van het type Tekenreekswaarde zijn (REG_SZ of REG_MULTI_SZ).
Wilt u een specifieke sleutelwaarde ophalen, dan vult u als derde argument ook de sleutelnaam in:
Sub voorbeeldRegisterUitlezenSub() MsgBox System.PrivateProfileString("", _ "HKEY_CURRENT_USER\AppEvents\EventLabels\BlockedPopup", "DispFileName") End Sub
Typ het voorbeeld over in een module in de Visual Basic Editor en probeer hem uit. U zult een berichtvenstertje zien met de desbetreffende waarde. De macro zit ook kant en klaar in het voorbeelddocument.
|