cs_PHILOUVB
Messages postés141Date d'inscriptionmardi 18 mars 2003StatutMembreDernière intervention 3 octobre 2010
-
10 juin 2007 à 12:30
cs_PHILOUVB
Messages postés141Date d'inscriptionmardi 18 mars 2003StatutMembreDernière intervention 3 octobre 2010
-
20 juin 2007 à 18:57
Bonjour à tous
Voici mon soucis :
J'ai une clé de registre qui s'appelle "Images" et qui se trouve dans "HKEY_CURRENT_USER\Mon Prog\Images"
Cette clé contient des éléments.
"HKEY_CURRENT_USER\Mon Prog\Images\fond1.jpg"
"HKEY_CURRENT_USER\Mon Prog\Images\fond2.jpg"
Je précise que mon profil n'est pas un profil administrateur (ceci pourrait expliquer la suite)
pour supprimer ma clé et l'ensemble des éléments à l'intérieur, j'ai voulu utiliser les procédures suivantes :
My.Computer.Registry.CurrentUser.DeleteSubKeyTree("HKEY_CURRENT_USER\Mon Prog\Images")
et
My.Computer.Registry.CurrentUser.DeleteSubKey("HKEY_CURRENT_USER\Mon Prog\Images")
Hélas pour moi, ces instructions sont sans effet.
J'aimerais savoir ce qui ne fonctionne pas et comment je peux y remédier
syxe_mpl
Messages postés58Date d'inscriptionmercredi 15 décembre 2004StatutMembreDernière intervention20 décembre 2010 12 juin 2007 à 08:40
salut voici les 4 fonctions que j'utilise en permanance pour écrire, lire ou créer des informations dans la base de registre :
stapp = la structure d'information sur l'application
'déclaration des clefs de l'appli dans la BASE de Registre
Public Const Appl_Key_Principal As String = "Nom de la société "
Public Const Appl_Key_Appl As String = "Nom de l'application ..."
Avant d'appeler la fonction Charger_BaseRegistre_Application :StApp.Appli_Chemin = Environment.CurrentDirectory
StApp.ApplKey_Chemin = Class_Demarrage.Appl_Key_Principal +
"" + Class_Demarrage.Appl_Key_Appl 'mémorisation du chemin de la clef de l'appli de la Base de Registre
#
Region "Lecture/Ecriture Base de Registre"'charge la base de registre liée à l'application
Public Shared Sub Charger_BaseRegistre_Application()
Dim Registre As Microsoft.Win32.RegistryKey
Dim confappli As String
'test lecture de la clefs d'information si logiciel bien initialisé ou non
Try
Registre = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(StApp.ApplKey_Chemin)
confappli = CType(Registre.GetValue("Config_Appli"), String)
If confappli <> "ConfigOk" Then
'création de la base de registre par default
If Not Creation_Base_Registre() Then
MessageBox.Show("Impossible de lancer application!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End
End If
End If
Catch ex As Exception
'erreur de lecture donc pas de présence de la clef d'initialisation donc création clef + chemin
If Not Creation_Base_Registre() Then
MessageBox.Show("Impossible de lancer application!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End
End If
End Try
'lecture des info de la base de registre :
Lecture_Base_Registre()
End Sub
'charge configuration de l'application à partir du fichier .ini de l'application
Public Sub Charger_Configuration_Application()
End Sub
' Lecture des info contenu dans la Base de registre pour cette application
Public Shared Sub Lecture_Base_Registre()
Dim Registre As Microsoft.Win32.RegistryKey, keyport As Microsoft.Win32.RegistryKey
Try
'Ouverture de la clef de l'application de la Base de Registre
Registre = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(StApp.ApplKey_Chemin)
StApp.Config_portCOM = CType(Registre.GetValue("Port"), String)
Catch ex As Exception
MessageBox.Show("Erreur de chargement des paramétres de configuration du port com, utilisation PORT config usine : PORT COM1,38400,8,1,0,0", "Erreur..", MessageBoxButtons.OK, MessageBoxIcon.Error)
StApp.Config_portCOM = "COM1,38400,8,1,0,0"
End Try
'---------------------------------------------------------------------------------------
'ouverture dépendance
'DATABASE Serveur:
Registre = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(StApp.ApplKey_Chemin)
keyport = Registre.OpenSubKey("DB_Srv") 'ouverture dépendance linsting config Ports de l'application
With StApp.Db_Serveur
.adr = CType(keyport.GetValue("adr"), String)
.log = CType(keyport.GetValue("log"), String)
.psw = CType(keyport.GetValue("psw"), String)
.db_name = CType(keyport.GetValue("db_name"), String)
StApp.Freq_Purge_Db_Err = CInt(CType(keyport.GetValue("Freq_Purge_Mois"), String))
End With
'SERVEUR :
StApp.clef_config = CType(Registre.GetValue("clef"), String)
StApp.Freq_Scrut_Etat_Psrl = CInt(CType(Registre.GetValue("Freq_Scrut_Psrl"), String))
StApp.Freq_Scrut_SMS = CInt(CType(Registre.GetValue("Freq_Scrut_SMS"), String))
'---------------------------------------------------------------------------------------
'Fermeture des clefs :
keyport.Close()
Registre.Close()
'---------------------------------------------------------------------------------------
End Sub
' création de la Base de registre de l'application'
Retourne : True = Ok création avec succés
' False = Erreur pendant la création par default !
Public Shared Function Creation_Base_Registre() As Boolean
Dim Registre As Microsoft.Win32.RegistryKey, keyport As Microsoft.Win32.RegistryKey
'création des clefs avec leur valeurs par default
Try
Registre = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(StApp.ApplKey_Chemin)
Catch ex As Exception
MsgBox("Erreur pendant la création des informations par defaut de l'application dans la Base de Registre !")
Return False
End Try
Try
'ouverture de la fenetre de 1er configuration :
Dim f As New Fen_Config_Starting_Appli
If f.ShowDialog <> Windows.Forms.DialogResult.OK Then
MsgBox("Arrêt du Serveur Centrale SMS" + vbCrLf + "Erreur : configuration du serveur non acceptée, impossible de lancer ce dernier!", MsgBoxStyle.Critical, "ERREUR")
Return False
End If
'.....................................................................................
'PortCOM :
Registre.SetValue("Port", f.rep.Config_portCOM)
'.....................................................................................
'DATABASE Serveur:
keyport = Registre.CreateSubKey("DB_Srv")
keyport.SetValue("adr", f.rep.Db_Serveur.adr)
keyport.SetValue("log", f.rep.Db_Serveur.log)
keyport.SetValue("psw", f.rep.Db_Serveur.psw)
keyport.SetValue("db_name", f.rep.Db_Serveur.db_name)
keyport.SetValue("Freq_Purge_Mois", f.rep.Freq_Purge_Db_Err.ToString)
'.....................................................................................
'fréquence scrutation état passerelle :
Registre.SetValue("Freq_Scrut_Psrl", f.rep.Freq_Scrut_Etat_Psrl.ToString)
Registre.SetValue("Freq_Scrut_SMS", f.rep.Freq_Scrut_SMS.ToString)
'.....................................................................................
'code d'accès
Registre.SetValue("clef", f.rep.clef_config)
'.....................................................................................
Registre.SetValue("Config_Appli", "ConfigOk")
Return True
Catch ex As Exception
Registre.SetValue("Config_Appli", "NON")
Registre.Close()
MsgBox("Erreur pendant la création des informations par defaut de l'application dans la Base de Registre !")
Return False
End Try
Registre.Close()
End Function
Public Shared Function Save_Base_Registre() As Boolean
'sauvegarde de la base de registre avec les éléments inclus dans la StApp destinés à la base
'returne si enregistrement Ok ou non
Dim Registre As Microsoft.Win32.RegistryKey, keyport As Microsoft.Win32.RegistryKey
'---------------------------------------------------------------------------------------
Try
'ouverture de la base de registre
Registre = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(StApp.ApplKey_Chemin, True)
Catch ex As Exception
MsgBox("Erreur à l'ouverture de la clef logiciel dans la base de registre.. impossible d'y enregistrer la configuration du logiciel!",
MsgBoxStyle.Critical, "Erreur !")
Return False
End Try
'---------------------------------------------------------------------------------------
Try
Registre.SetValue("Port", StApp.Config_portCOM) 'ouverture dépendance linsting config Ports de l'application
'......................................................................................................
'DATABASE Serveur
keyport = Registre.OpenSubKey("DB_Srv", True) 'Db de listing d'erreur en tram recu !!
With StApp.Db_Serveur
keyport.SetValue("adr", .adr)
keyport.SetValue("log", .log)
keyport.SetValue("psw", .psw)
keyport.SetValue("db_name", .db_name)
keyport.SetValue("Freq_Purge_Mois", StApp.Freq_Purge_Db_Err.ToString)
End With
keyport.Close()
'......................................................................................................
Registre.SetValue("Freq_Scrut_Psrl", StApp.Freq_Scrut_Etat_Psrl) 'Port d'écoute du serveur TCP/IP
Registre.SetValue("Freq_Scrut_SMS", StApp.Freq_Scrut_SMS) 'adr du serveur TCP/IP
'......................................................................................................
Registre.SetValue("clef", StApp.clef_config) 'clef d'accés à la config du serveur
'......................................................................................................
Registre.SetValue("Config_Appli", "ConfigOk") ' confirmation de la configuration du des clefs de registre
'......................................................................................................
Catch ex As Exception
Registre.Close()
MsgBox("Erreur pendant l'enregistrement de la config dans la base de registre.. Configuration non complète !",
MsgBoxStyle.Critical, "Erreur !")
Return False
End Try
'---------------------------------------------------------------------------------------
'Fermeture des clefs
keyport.Close()
Registre.Close()
'---------------------------------------------------------------------------------------
Return True ' confirmation de l'enregistrement des datas dans la base de registre
'---------------------------------------------------------------------------------------
End Function
syxe_mpl
Messages postés58Date d'inscriptionmercredi 15 décembre 2004StatutMembreDernière intervention20 décembre 2010 11 juin 2007 à 10:46
bonjour,
Personnelement si tu n'es pas en administrateur tu peux ajouter des éléments dans la base de registre mais je ne pense pas que tu puisses en supprimer !!! Je n'ai pas fait le test mais cela me paraitrait logique ! As tu essaié de le réaliser manuellement pour voir si déjà tu pouvais le réaliser avec les droits que tu as ?? Autre exemple, les fichiers et dossiers dans programmes files ne sont modifiables ou suppressible qu'avec des droits 'admin' !! C'est pour cela que je ne mais pas mes applications dans ce dossier par exemple. Donc ton problème peut venir de tes droits !? Pour en être sur réalise la même op avec les droits admin !
A+ et bon code !