Lire et modifier une chaine du registre

[Résolu]
Signaler
Messages postés
13
Date d'inscription
samedi 25 octobre 2008
Statut
Membre
Dernière intervention
27 juillet 2010
-
Messages postés
13
Date d'inscription
samedi 25 octobre 2008
Statut
Membre
Dernière intervention
27 juillet 2010
-
Bonjour tout le monde,

Après plusieurs recherches sur le forum et dans les sources, j'ai pas trouvé une solution qui fasse fonctionner mon bout de code.
Je cherche à lire la valeur de la chaine "ScreenSaverIsSecure" dans HKEY_CURRENT_USER\Control Panel\Desktop. Pour cela j'ai écrit un bout de code mais je n'arrive pas à récupérer la valeur dans ma variable RegValeur.

Merci beaucoup.

Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" ( _
ByVal hKey As Integer, _ ' J'ai dut passer ce paramètre en integer pour ne pas avoir le message d'erreur AccessViolationException
ByVal lpSubKey As String, _
ByVal phkResult As Integer) As Long
Public Declare Function RegCloseKey Lib "advapi32.dll" ( _
ByVal hKey As Long) As Long
Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" ( _
ByVal hKey As Long, _
ByVal lpValueName As String, _
ByVal Reserved As Long, _
ByVal dwType As Long, _
ByVal lpData As Integer, _
ByVal cbData As Long) As Long
Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" ( _
ByVal hKey As Long, _
ByVal lpValueName As String, _
ByVal lpReserved As Long, _
ByVal lpType As Long, _
ByVal lpData As String, _
ByVal lpcbData As Long) As Long

Const HKEY_CURRENT_USER = &H80000001
Const REG_SZ = 1

Private Sub Form1_Load() Handles MyBase.Load

Dim RegHandle, result As Integer
Dim RegValeur As String

result = RegOpenKey(HKEY_CURRENT_USER, "Control Panel\Desktop", RegHandle)
Call RegQueryValueEx(RegHandle, "ScreenSaverIsSecure", 0, REG_SZ, RegValeur, Len(RegValeur))
If RegValeur "1" Then RegValeur "0"
If RegValeur "0" Then RegValeur "1"
Call RegSetValueEx(RegHandle, "ScreenSaverIsSecure", 0, REG_SZ, RegValeur, Len(RegValeur))
End Sub

1 réponse

Messages postés
13
Date d'inscription
samedi 25 octobre 2008
Statut
Membre
Dernière intervention
27 juillet 2010

Problème résolu en utilisant la classe Microsoft.Win32.Registry