Lezen in registry

Status
Niet open voor verdere reacties.

joke1

Gebruiker
Lid geworden
24 mei 2006
Berichten
159
Ik wil informatie in het register gaan lezen en gebruik deze code:

Dim readValue = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "RegisteredOwner", Nothing)
If readValue Is Nothing Then readValue = "De waarde bestaat niet"
MsgBox("The value is " & readValue)


Het resultaat dat ik krijg is: "De waarde bestaat niet" maar als ik via regedit naar die waarde ga kijken dan staat dat er wel in. Wat die ik fout?
Als ik RegisteredOwner vervang door ProductName dan krijg ik wel resultaat maar dat is totaal anders dan dat wat ik zelf via regedit lees.
 
is je programma gecompileerd in 32-bit en heb je een 64-bit systeem?

Ook moet je mogelijk naar de rechten kijken

staat in HKLM\SOFTWARE\WOW6432Node\microsoft\windows NT\Currentversion wel wat je terug krijgt ?
 
Laatst bewerkt:
Wampier bedankt voor je reactie, je hebt mij al goed geholpen toch begrijp ik iets niet goed.

Bij Compileren stond: Target CPU => Any CPU en Prefer 32bit was aangevinkt. Als ik dat vinkje weg doe krijg ik wel resultaat.

Als ik nu de Windows naam wil weten geef ik in: "ProductName" dan krijg ik ook een waarde terug. In mijn geval "Windows 10 Home" en dat ziet er goed uit. Maar als ik via regedit de tekst van die waarde wijzig naar bijvoorbeeld "Windows 11" dan geeft deze applicatie 2 verschillende waarden terug afhankelijk of dat vinkje bij Prefer 32bit er staat of niet en aan het register is niks gewijzigd.
Dus "My.Computer.Registry.GetValue" gaat ergens lezen afhankelijk van dat vinkje en dat versta ik niet. Heb jij daar een uitleg voor?

Ja in HKLM\SOFTWARE\WOW6432Node\microsoft\windows NT\Currentversion staat de waarde die ik terug krijg als dat vinkje er staat.
 
Laatst bewerkt:
Zie mijn vraag over de tweede key in mijn antwoord hierboven:

staat in HKLM\SOFTWARE\WOW6432Node\microsoft\windows NT\Currentversion wel wat je terug krijgt (voor prefer 32-bit)
 
Voor de duidelijkheid (je edit is na mijn vorige antwoord): Er zijn 2 registries: een 64-bit registry (standaard op een 64-bit systeem) en een 32-bit versie (standaard op 32-bit systeem, ge-emuleerd op een 64 bit systeem via W(indows)-O(n)-W(indows) 64>32 )

Een 32-bits programma krijgt standaard de waarden uit de wow6432 node
een 64-bits programma krijgt de waarden uit het normale register.
 
Wampier bedankt voor je reactie, nu is het duidelijk en heb ik weer heel wat bijgeleerd.

Topic mag gesloten worden.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan