Torna al Thread
''' <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 SbrCreaChiaveSeNonEsiste()
Try
Dim nomi As String() = Registry.LocalMachine.OpenSubKey("Software").GetSubKeyNames
' Dim NomiDeiSoftware As String() = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey(NomeSottoChiaveAzienda).GetSubKeyNames
If Array.IndexOf(nomi, CstNomeSottoChiaveAzienda) < 0 Then
'Se non esiste la sottochiave per la mainsistemi, non esiste neppure quella per il software specifico, allora andranno
'create entrambe; più l'apposito campo
Registry.LocalMachine.OpenSubKey("Software", True).CreateSubKey(CstNomeSottoChiaveAzienda)
Registry.LocalMachine.OpenSubKey("Software", True).OpenSubKey(CstNomeSottoChiaveAzienda, True).CreateSubKey(CstNomeSottoChiaveProgramma)
Registry.LocalMachine.OpenSubKey("Software", True).OpenSubKey(CstNomeSottoChiaveAzienda, True).OpenSubKey(CstNomeSottoChiaveProgramma, True).SetValue(CstNomeCampoRegistroPerPath, Application.StartupPath)
Else
Dim NomiDeiSoftware As String() = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey(CstNomeSottoChiaveAzienda).GetSubKeyNames
If Array.IndexOf(NomiDeiSoftware, CstNomeSottoChiaveProgramma) < 0 Then
'Se invece manca la sottochiave per il software, si crea solo quella, più l'apposito campo
Registry.LocalMachine.OpenSubKey("Software", True).OpenSubKey(CstNomeSottoChiaveAzienda, True).CreateSubKey(CstNomeSottoChiaveProgramma)
Registry.LocalMachine.OpenSubKey("Software", True).OpenSubKey(CstNomeSottoChiaveAzienda, True).OpenSubKey(CstNomeSottoChiaveProgramma, True).SetValue(CstNomeCampoRegistroPerPath, 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(CstNomeSottoChiaveAzienda).OpenSubKey(CstNomeSottoChiaveProgramma).GetValueNames, CstNomeCampoRegistroPerPath) < 0 Then
'se qui, il campo non esiste
Registry.LocalMachine.OpenSubKey("Software", True).OpenSubKey(CstNomeSottoChiaveAzienda, True).OpenSubKey(CstNomeSottoChiaveProgramma, True).SetValue(CstNomeCampoRegistroPerPath, Application.StartupPath)
End If
End If
End If
Catch ex As Exception
MessageBox.Show(Procedure.FnzPreparaDescrizioneErroreXMessageBox(ex))
End Try
End Sub
''' <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\TGen2005
''' 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 FnzLeggiValoreDa_LocalMachine_Software_MainSistemi(ByRef ValoreDiRitorno As String, ByVal NomeCampo As String) As Boolean
FnzLeggiValoreDa_LocalMachine_Software_MainSistemi = True
Try
ValoreDiRitorno = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey(CstNomeSottoChiaveAzienda).OpenSubKey(CstNomeSottoChiaveProgramma).GetValue(NomeCampo).ToString
Catch ex As Exception
MessageBox.Show(FnzPreparaDescrizioneErroreXMessageBox(ex))
FnzLeggiValoreDa_LocalMachine_Software_MainSistemi = False
End Try
End Function
''' <summary>
''' Scrive nel campo NomeCampo, il valore stringa contenuto nel parametro ValoreDaScrivere
''' Il campo lo si cerca in LocalMachine\Sotware\MainSistemi\TGen2005
''' Se qualcosa va storto, torna=false
''' </summary>
''' <param name="ValoreDaScrivere">Stringa da memorizzare</param>
''' <param name="NomeCampo">Nome del campo in cui verrà inserita la stringa</param>
''' <returns></returns>
''' <remarks></remarks>
Public Function FnzScriviValoreIn_LocalMachine_Software_MainSistemi(ByVal ValoreDaScrivere As String, ByVal NomeCampo As String) As Boolean
FnzScriviValoreIn_LocalMachine_Software_MainSistemi = True
Try
Registry.LocalMachine.OpenSubKey("Software", True).OpenSubKey(CstNomeSottoChiaveAzienda, True).OpenSubKey(CstNomeSottoChiaveProgramma, True).SetValue(NomeCampo, ValoreDaScrivere)
Catch ex As Exception
MessageBox.Show(FnzPreparaDescrizioneErroreXMessageBox(ex))
FnzScriviValoreIn_LocalMachine_Software_MainSistemi = False
End Try
End Function