Jag försöker mig på att skriva och hämta värden ur registret.
I första läget, så är det en checkbox, som sen skall användas om man skall spara till registret.
Så här försöker jag:
Spara till registret
Sub SparaTillRegistret()
Dim Beskrivning As String, Objekt As String, Varde As Long
AppNamn = App.ProductName
Beskrivning = "Spara värde"
Objekt = "Chekbox"
Varde = Form1.Check1.Value
SaveSetting AppNamn, Beskrivning, Objekt, Varde
End Sub
Och sedan hämta värdena:
[kod]
Sub HamtaIfranRegistret()
Dim Beskrivning As String, Objekt As String, Varde As Long, hamta As String
Varde = GetSetting(appname:=AppNamn, section:="Beskrivning", Key:="Objekt", Default:=Varde)
If Varde = 1 Then
Form1.Check1.Value = Checked
End If
End Sub
[kod]
Det här går inget vidare, när jag söker i registret, så finns det ingenting där, följaktningen så får jag inga värden därifrån heller.
Jag har också för mig, att skicka jag in ett värde via en variabel, då skall jag inte ha några dubbelfnuttar runt, annars skall man.
Tar jag bort fnuttarna (när jag skall hämta värdet) det får jag ett error. :l
Vad gör jag för fel??
:r
denna för att läsa
Varde = GetSetting("AppName", "Beskrivning", "Object", "Värde om inget finns")
denna för att skriva
SaveSetting "ApName", "Beskrivning", "Object", Varde
Sub HamtaIfranRegistret()
Dim Beskrivning As String, Objekt As String, Varde As Long, hamta As String
AppNamn = App.ProductName
Beskrivning = "Spara värde"
Objekt = "Chekbox"
Varde = GetSetting("AppName", "Beskrivning", "Objekt", "0")
If Varde = 1 Then
Form1.Check1.Value = Checked
End If
End Sub
Sub HamtaIfranRegistret()
Dim Beskrivning As String, Objekt As String, Varde As Long, AppNamn As String
AppNamn = App.ProductName
Beskrivning = "Spara värde"
Objekt = "Chekbox"
Varde = GetSetting(AppName, Beskrivning, Objekt, "0")
If Varde = 1 Then
Form1.Check1.Value = Checked
End If
End Sub
Tack PsyDonia för ditt jobb, och nu känns det väll otacksamt för dig men....
Jag hittade en basmodul på nätet som hjälper till ganska så bra.
Ung så här är det.
SaveStringSetting(ByVal sAppName As String, _
ByVal sSection As String, _
ByVal sKey As String, _
ByVal sSetting As String)
Det innebär att jag sparar så här:
Dim SparaTillRegistret As String, checker As String
checker = Form1.Check1.Value
SaveStringSetting AppNamn, "Spara inställningarna", "Spara", checker
När jag sen letar i registret, så snyggt och prydligt står det:
HKEY_LOCAL_MASHINE\SOFTWHERE\MultiLanguage\Spara Inställningarna.
Där finns då en nyckel som heter Spara och har (värde)data 1.
Så långt så är det helt kanon.
Men nu kommer det här med att hämta informationen.
Public Function GetStringSetting(ByVal sAppName As String, _
ByVal sSection As String, _
ByVal sKey As String, _
Optional ByVal sDefault As String) As String
Det här lyckades.
spara = GetStringSetting(AppNamn, "Spara inställningarna", "spara", "checker")
If spara <> 0 Then
Check1.Value = vbChecked
Else
Check1.Value = vbUnchecked
End If
Nu är det bara resten kvar, jag iallafall för din hjälp.
Public Sub ReadWriteDeleteRegistry(RegistryKey As String, RegistryInformation As String, ReadWriteDelete As Integer)
'Error Handling In case something goes w
' rong
On Error GoTo ErrHandler
'Sets the Variables to be used
Dim WSHShell, RegTemp
'Starts the Wscript Object
Set WSHShell = CreateObject("WScript.Shell")
'Checks for Read Property (Read = 1)
If ReadWriteDelete = 1 Then
'Reads the specified key
RegTemp = WSHShell.RegRead(RegistryKey)
MsgBox RegTemp
End If
'Checks for Write Property (Write = 2)
If ReadWriteDelete = 2 Then
'Writes to the registry
WSHShell.RegWrite RegistryKey, RegistryInformation
MsgBox Chr(34) & RegistryKey & "\" & RegistryInformation & Chr(34) & " has been written to the registry.", vbInformation, "Success"
End If
'Checks for Delete Property (Delete = 3)
'
If ReadWriteDelete = 3 Then
Dim MsgDeleteKey As String
'Makes sure you really do want to delete
' this key
MsgDeleteKey = MsgBox("You are about to delete: " & RegistryKey & " From Your Registry, Do you wish to continue?", vbYesNo Or vbQuestion, "Warning!")
End If
'Checks for which buttin the user presse
' d (Yes Or No)
Select Case MsgDeleteKey
'If Yes, Delete Key
Case vbYes
WSHShell.RegDelete (RegistryKey)
MsgBox RegistryKey & " Has Been Deleted!", vbInformation, "Success"
Err
'If No, Exit the Sub
Case vbNo
Exit Sub
End Select
'Error Handler Label
ErrHandler:
'Checks for specific error(s)
'This one is for a non-existant Key
If Err.Number = (-2147024894) Then
MsgBox "The Registry Key (" & RegistryKey & ") doesn't exist.", vbCritical, "Error - Key Not Found"
End If
'This one is for an Invalid Key
If Err.Number = (-2147024893) Then
MsgBox "The Key (" & RegistryKey & ") is invalid.", vbCritical, "Error - Invalid Key"
End If
End Sub
Dim Registry As New cRegistry
Registry.ClassKey = HKEY_LOCAL_MACHINE
Registry.SectionKey = "Software\MultiLanguage"
Registry.ValueKey = "Senast öppnade webbplats"
If Registry.DeleteValue Then
' Borttagningen lyckades
Else
' Borttagningen misslyckades
End If
om strängen heter "Senast öppnade webbplats". Om det är en nyckel (en mapp alltså), använd följande
Dim Registry As New cRegistry
Registry.ClassKey = HKEY_LOCAL_MACHINE
Registry.SectionKey = "Software\MultiLanguage\Senast öppnade webbplats"
If Registry.DeleteKey Then
' Borttagningen lyckades
Else
' Borttagningen misslyckades
End If