Chiave di Registro in VB.NET

lunedì 26 giugno 2006 - 17.02

Lorenzogtidancer Profilo | Newbie

Salve a tutti,

voglio creare una chiave di registro in VB.NET dove inserire il valore di una data.

Qualcuno può aiutarmi?

Grazie di cuore.

lorenzogtidancer...

revontulet Profilo | Junior Member

ciao
trovi un ottimo articolo di BrainKiller proprio qui

http://www.dotnethell.it/articles/WindowsRegistry.aspx

alextyx Profilo | Expert

Ho dovuto scrivere una chiave di registro per salvarci il path dell'ultimo file aperto o salvato, così da riposizionarmici sopra al successivo riutilizzo del programma, che usa sia OpenFileDialog, che SaveFileDialog. Pertanto ho dovuto creare una chiave in un percorso che ho deciso di creare col nome di chi commercializzerà l'applicazione.

Il primo passo, nel mio caso, è creare il percorso:



''' <summary>
''' Qualora non esistano la chiave e/o il campo del registro, preposti alla memorizzazione del nome del file,
''' procede a crearli ed inizializzarli
''' </summary>
''' <remarks></remarks>
Private Sub CreaChiaveSeNonEsiste()

Try
Dim nomi As String() = Registry.LocalMachine.OpenSubKey("Software").GetSubKeyNames
If Array.IndexOf(nomi, NomeSottoChiave) < 0 Then
'Se non esiste la sottochiave per la mainsistemi, allora andrà creata sia quella che l'apposito campo
Registry.LocalMachine.OpenSubKey("Software", True).CreateSubKey(NomeSottoChiave)
Registry.LocalMachine.OpenSubKey("Software", True).OpenSubKey(NomeSottoChiave, True).SetValue(NomeCampoRegistroPerPath, Application.StartupPath)
Else
'Se la sottochiave esiste, bisogna verificare se esiste il campo, altrimenti va creato e inizializzato
If Array.IndexOf(Registry.LocalMachine.OpenSubKey("Software").OpenSubKey(NomeSottoChiave).GetValueNames, NomeCampoRegistroPerPath) < 0 Then
'se qui, il campo non esiste
Registry.LocalMachine.OpenSubKey("Software").OpenSubKey(NomeSottoChiave, True).SetValue(NomeCampoRegistroPerPath, Application.StartupPath)
End If
End If

Catch ex As Exception
MessageBox.Show("Si è verificato il seguente errore nella procedura 'CreaChiaveSeNonEsiste' : " & ex.Message)
End Try

End Sub


Poi si può leggere il valore:


''' <summary>
''' Legge il valore stringa, contenuto in NomeCampo e lo restituisce mediante il parametro ValorediRitorno (ByRef)
''' Il campo lo si cerca in LocalMachine\Sotware\MainSistemi.
''' Se qualcosa va storto, torna=false
''' </summary>
''' <param name="ValoreDiRitorno">Stringa nella quale verrà copiato il valore recuperato</param>
''' <param name="NomeCampo">Nome del campo da leggere</param>
''' <returns></returns>
''' <remarks></remarks>
Public Function LeggiValoreDa_LocalMachine_Software_MainSistemi(ByRef ValoreDiRitorno As String, ByVal NomeCampo As String) As Boolean
LeggiValoreDa_LocalMachine_Software_MainSistemi = True
Try
ValoreDiRitorno = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey(NomeSottoChiave).GetValue(NomeCampo).ToString
Catch ex As Exception
MessageBox.Show("Si è verificato il seguente errore nella procedura 'LeggiValoreDa_LocalMachine_Software_MainSistemi' : " & ex.Message)
LeggiValoreDa_LocalMachine_Software_MainSistemi = False
End Try

End Function


Oppure scriverlo :


''' <summary>
''' Scrive nel campo NomeCampo, il valore stringa contenuto nel parametro ValoreDaScrivere
''' Il campo lo si cerca in LocalMachine\Sotware\MainSistemi.
''' Se qualcosa va storto, torna=false
''' </summary>
''' <param name="ValoreDaScrivere"></param>
''' <param name="NomeCampo"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function ScriviValoreIn_LocalMachine_Software_MainSistemi(ByVal ValoreDaScrivere As String, ByVal NomeCampo As String) As Boolean
ScriviValoreIn_LocalMachine_Software_MainSistemi = True
Try
Registry.LocalMachine.OpenSubKey("Software", True).OpenSubKey(NomeSottoChiave, True).SetValue(NomeCampo, ValoreDaScrivere)
Catch ex As Exception
MessageBox.Show("Si è verificato il seguente errore nella procedura 'ScriviValoreIn_LocalMachine_Software_MainSistemi' : " & ex.Message)
ScriviValoreIn_LocalMachine_Software_MainSistemi = False
End Try

End Function

Il codice è in VB2005, con tutti i commenti del caso che appaiono nell'intellisense.

I nomi delle funzioni sono un po' lunghetti lo ammetto, ma danno subito l'idea di cosa fanno
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5