Avatar billede tma Juniormester
22. januar 2009 - 15:16 Der er 4 kommentarer og
1 løsning

Simpel læse og skrive fra registreringsdatabasen

Hej
Jeg mangler et konkret eksempel på at læse og skrive fra registreringsdatabasen. Det er ikke nok med GetSetting (og Putsetting), da de ikke kan læse/skrive fra et vilkårlig sted i regdb. Jeg har brug for at skrive til HKEY_CURRENT_USER\Software\...
Jeg har fundet nogle eksempler på en kommando der hedder RegCreateKeyEx Men den kan jeg ikke få til at virke.
Hvis I angiver kodeeksempler så husk lige at fortælle hvis der skal angives nogle references i VB
/Torben
Avatar billede tma Juniormester
22. januar 2009 - 15:21 #1
Kan også lige nævne at jeg har haft kik på :
http://www.windowsdevcenter.com/pub/a/windows/2004/06/15/VB_Registry_Keys.html?page=3
men også her er der en masse variabler som ikke er defineret.
Avatar billede jih Nybegynder
22. januar 2009 - 16:00 #2
taget fra:
http://www.codeguru.com/forum/showthread.php?s=&postid=850088

WshShell objektet har disse metoder: RegRead, RegWrite og RegDelete. Vha dette objekt slipper du fra en masse API, men derimod bliver du nødt til at tilføje en reference til Windows Script Host Model. her er et eksempel, taget direkte fra siden:

Private Sub Command1_Click()
    'Add a reference to Windows Script Host Model
    Dim objReg As New WshShell
    Dim strKey As String
   
    'This key will be created by SaveSetting in a second
    strKey = "HKEY_USERS\.DEFAULT\Software\VB and VBA Program Settings\REGTEST\TESTSECTION\TESTKEY"
   
    'This save the settings to the registry at a specific VB key
    SaveSetting "REGTEST", "TESTSECTION", "TESTKEY", "Test Value"
   
    'It read that specific VB Key
    MsgBox objReg.RegRead(strKey), , "We just set this value with SaveSetting"
   
    'Now it overwrite the value
    objReg.RegWrite strKey, "Test Value modified by RegWrite"
   
    'Read it again
    MsgBox objReg.RegRead(strKey), , "Value using WshShell.RegRead"
    MsgBox GetSetting("REGTEST", "TESTSECTION", "TESTKEY"), , "Value with GetSetting"
   
    'Now Delete the Key, notice I delete the whole section and not just the key
    objReg.RegDelete "HKEY_USERS\.DEFAULT\Software\VB and VBA Program Settings\REGTEST\"
   
    'Read it again, but it don't exist anyway
    MsgBox objReg.RegRead(strKey), , "This line return an error"


    Set objReg = Nothing
End Sub


Jeg har selv brugt denne metode og har ikke haft problemer med den.
Avatar billede learningvba Nybegynder
23. januar 2009 - 07:54 #3
Har du kigget på:
http://www.eksperten.dk/spm/188556

Det minder lidt om det du skal bruge.
Hvis du bruger VBA (Word) kan du med fordel udnytte System.PrivateProfileString

Håber det kunne hjælpe dig videre.
Avatar billede tma Juniormester
23. januar 2009 - 08:48 #4
Hej jih

Det ser ud til at virke fint (og meget mere simpelt end api-kaldene).

Ligger du et svar?

/Torben
Avatar billede jih Nybegynder
23. januar 2009 - 09:11 #5
svar :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester