Sujet : Création et suppresion d'une clé de base de registre avec Visual Basic |
Lockness |
Ok, merci pour votre aide.
En fait, suite à une réponse sur le forum de Checksix (simu aérienne), je vais faire autrement :
Pour supprimer la clé : plus de bidouillage dangereux : je vais faire un fichier *.reg contenant :
REGEDIT4 [-HKEY_LOCAL_MACHINE\Software\MicroProse] Puis je le lancerais via un fichier *.bat par "regedit.exe fichier.reg"
Pour l'exportation d'un fichier *.reg, je vais faire ma méthode bricolage (sendkeys), étant donné qu'il n'y a pas de risque.
Merci à tous, Lockness. |
Lockness |
Salut,
Vraiment, je te remercies beaucoup pour t'être soucié de ton problème. Je m'en vais essayer sous Visual Basic.
Cepedant il y a deux ou trois trucs qui me préoccupent, car j'suis débutant en VB, lorsque tu mets, par exemple :
Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Je mets quoi exactement (quels mots) en haut, pour déclarer.
Et ensuite, si je veux qu'il ouvre la clé HKEY_LOCAL_MACHINE\Software, par clic sur un bouton :
J'aurais :
Private Sub Bouton_Click()
et là, je met quoi ???, le Public Declare Fontion ... ?
End Sub
Dans (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long), le chemin de ma clé, je le met où ?
Désolé pour ces questions stupides, mais je débute en VB !!
Merci de m'avoir répondu, Lockness. |
xilebo |
Tres simple, il suffit d'utiliser les API windows.
Les fonctions à utiliser se trouvent dans la lib "advapi32.lib"
il faut utiliser les fonctions suivantes ( tu les declare en haut dans ton programme)
Pour ouvrir une clé :
Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Pour modifier une clé :
Public Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Pour fermer une clé :
Public Declare Function RegCloseKey Lib "advapi32.dll" Alias "RegCloseKey" (ByVal hKey As Long) As Long
Pour créer une clé :
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Pour effacer une clé :
Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
pour effacer une valeur ( entrée dans une clé ) :
Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Pour enumérer des clés ( quand on connait pas les noms ... ) :
Public Declare Function RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, ByVal cbName As Long) As Long
Pour enumerer les valeurs contenues dans une clés :
Public Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Byte, lpcbData As Long) As Long
etc etc ...
Il y a pleins d'autres fonctions comme ca mais aprés elles sont plus spécifiques ... je pense que cela te suffira pour faire ce que tu veux faire, utilise quand meme MSDN pour voir comment marchent les fonctions .
Et fait gaffe en manipulant la base de registre, fais une copie de la tienne avant pour faire des essais car les actions sont irréversibles ( voir ton formatage !!!).
Et si t es sous NT ou 2000 , pense aux droits utilisateurs sur la base de registre.
Pour info les fichiers à sauvegarder de la base de registre sont : system.dat, user.dat. |