Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ng
Salut, Tu peux tester avec l'API RegDeleteKey, voici un exemple l'utilisant :
Const HKEY_CURRENT_USER = &H80000001 Const REG_OPTION_BACKUP_RESTORE = 4 ' open for backup or restore Const REG_OPTION_VOLATILE = 1 ' Key is not preserved when system is rebooted Const REG_OPTION_NON_VOLATILE = 0 ' Key is preserved when system is rebooted Const STANDARD_RIGHTS_ALL = &H1F0000 Const SYNCHRONIZE = &H100000 Const READ_CONTROL = &H20000 Const STANDARD_RIGHTS_READ = (READ_CONTROL) Const STANDARD_RIGHTS_WRITE = (READ_CONTROL) Const KEY_CREATE_LINK = &H20 Const KEY_CREATE_SUB_KEY = &H4 Const KEY_ENUMERATE_SUB_KEYS = &H8 Const KEY_NOTIFY = &H10 Const KEY_QUERY_VALUE = &H1 Const KEY_SET_VALUE = &H2 Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE)) Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE)) Const KEY_EXECUTE = (KEY_READ) Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE)) Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As Any, phkResult As Long, lpdwDisposition As Long) As Long Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal samDesired As Long, phkResult As Long) As Long Private Sub Form_Load() 'KPD-Team 2000 'URL: http://www.allapi.net/ 'E-Mail: Dim Result As Long 'Check if the specified key exists RegOpenKeyEx HKEY_CURRENT_USER, "KPD-Team", 0, KEY_ALL_ACCESS, Result 'If the key doesn't exist, we create it If Result = 0 Then 'Create a new key RegCreateKeyEx HKEY_CURRENT_USER, "KPD-Team", 0, "REG_DWORD", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, ByVal 0&, Result, Ret If Result = 0 Then MsgBox "Error while creating the Key!!" Exit Sub End If End If 'Delete the key RegDeleteKey Result, "" 'close the handle RegCloseKey Result End Sub
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
"Nicolas" a écrit dans le message de news: eb2a01c3f171$17391040$ Bonjour,
Je souhaiterais supprimer toutes les valeurs binaires contenues dedans, comment faire ?
J'ai essayé avec ceci :
Set WshShell = CreateObject("WScript.Shell") WshShell.RegDelete "HKEY_CURRENT_USERSoftwareGoogleNavCl ient1.1History"
Mais ça me retourne que l'opération est impossible.
J'attend vos suggestions
Merci d'avance
Nicolas
Salut,
Tu peux tester avec l'API RegDeleteKey, voici un exemple l'utilisant :
Const HKEY_CURRENT_USER = &H80000001
Const REG_OPTION_BACKUP_RESTORE = 4 ' open for backup or restore
Const REG_OPTION_VOLATILE = 1 ' Key is not preserved when system
is rebooted
Const REG_OPTION_NON_VOLATILE = 0 ' Key is preserved when system is
rebooted
Const STANDARD_RIGHTS_ALL = &H1F0000
Const SYNCHRONIZE = &H100000
Const READ_CONTROL = &H20000
Const STANDARD_RIGHTS_READ = (READ_CONTROL)
Const STANDARD_RIGHTS_WRITE = (READ_CONTROL)
Const KEY_CREATE_LINK = &H20
Const KEY_CREATE_SUB_KEY = &H4
Const KEY_ENUMERATE_SUB_KEYS = &H8
Const KEY_NOTIFY = &H10
Const KEY_QUERY_VALUE = &H1
Const KEY_SET_VALUE = &H2
Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or
KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE))
Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or
KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE))
Const KEY_EXECUTE = (KEY_READ)
Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or
KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY
Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long)
As Long
Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias
"RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias
"RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal
Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal
samDesired As Long, lpSecurityAttributes As Any, phkResult As Long,
lpdwDisposition As Long) As Long
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias
"RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal
Reserved As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Sub Form_Load()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
Dim Result As Long
'Check if the specified key exists
RegOpenKeyEx HKEY_CURRENT_USER, "KPD-Team", 0, KEY_ALL_ACCESS, Result
'If the key doesn't exist, we create it
If Result = 0 Then
'Create a new key
RegCreateKeyEx HKEY_CURRENT_USER, "KPD-Team", 0, "REG_DWORD",
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, ByVal 0&, Result, Ret
If Result = 0 Then
MsgBox "Error while creating the Key!!"
Exit Sub
End If
End If
'Delete the key
RegDeleteKey Result, ""
'close the handle
RegCloseKey Result
End Sub
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
"Nicolas" <nicolasheurtevin@wanadoo.fr> a écrit dans le message de news:
eb2a01c3f171$17391040$a301280a@phx.gbl...
Bonjour,
Salut, Tu peux tester avec l'API RegDeleteKey, voici un exemple l'utilisant :
Const HKEY_CURRENT_USER = &H80000001 Const REG_OPTION_BACKUP_RESTORE = 4 ' open for backup or restore Const REG_OPTION_VOLATILE = 1 ' Key is not preserved when system is rebooted Const REG_OPTION_NON_VOLATILE = 0 ' Key is preserved when system is rebooted Const STANDARD_RIGHTS_ALL = &H1F0000 Const SYNCHRONIZE = &H100000 Const READ_CONTROL = &H20000 Const STANDARD_RIGHTS_READ = (READ_CONTROL) Const STANDARD_RIGHTS_WRITE = (READ_CONTROL) Const KEY_CREATE_LINK = &H20 Const KEY_CREATE_SUB_KEY = &H4 Const KEY_ENUMERATE_SUB_KEYS = &H8 Const KEY_NOTIFY = &H10 Const KEY_QUERY_VALUE = &H1 Const KEY_SET_VALUE = &H2 Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE)) Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE)) Const KEY_EXECUTE = (KEY_READ) Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE)) Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As Any, phkResult As Long, lpdwDisposition As Long) As Long Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal samDesired As Long, phkResult As Long) As Long Private Sub Form_Load() 'KPD-Team 2000 'URL: http://www.allapi.net/ 'E-Mail: Dim Result As Long 'Check if the specified key exists RegOpenKeyEx HKEY_CURRENT_USER, "KPD-Team", 0, KEY_ALL_ACCESS, Result 'If the key doesn't exist, we create it If Result = 0 Then 'Create a new key RegCreateKeyEx HKEY_CURRENT_USER, "KPD-Team", 0, "REG_DWORD", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, ByVal 0&, Result, Ret If Result = 0 Then MsgBox "Error while creating the Key!!" Exit Sub End If End If 'Delete the key RegDeleteKey Result, "" 'close the handle RegCloseKey Result End Sub
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
"Nicolas" a écrit dans le message de news: eb2a01c3f171$17391040$ Bonjour,
Je souhaiterais supprimer toutes les valeurs binaires contenues dedans, comment faire ?
J'ai essayé avec ceci :
Set WshShell = CreateObject("WScript.Shell") WshShell.RegDelete "HKEY_CURRENT_USERSoftwareGoogleNavCl ient1.1History"
Mais ça me retourne que l'opération est impossible.
J'attend vos suggestions
Merci d'avance
Nicolas
Zoury
Salut Nicolas! :O)
Tu peux utiliser l'api RegEnumValue() sur la clé désirée afin d'énumérer les valeurs de celles-ci, ensuite tu vérifie le type de valeur pour qu'il soit égal à REG_BINARY et si c'est le cas tu supprimes. ;O)
Voici un exemple : '*** ' Module1 Option Explicit
Private Const HKEY_LOCAL_MACHINE As Long = &H80000002 Private Const REG_BINARY As Long = 3 Private Const ERROR_SUCCESS As Long = 0 Private Const ERROR_NO_MORE_ITEMS As Long = &H103
Private Declare Function RegOpenKey _ Lib "advapi32.dll" _ Alias "RegOpenKeyA" _ ( _ ByVal hKey As Long, _ ByVal lpSubKey As String, _ ByRef phkResult As Long _ ) As Long
Private Declare Function RegEnumValue _ Lib "advapi32.dll" _ Alias "RegEnumValueA" _ ( _ ByVal hKey As Long, _ ByVal dwIndex As Long, _ ByVal lpValueName As String, _ ByRef lpcbValueName As Long, _ ByVal lpReserved As Long, _ ByRef lpType As Long, _ ByRef lpData As Byte, _ ByRef lpcbData As Long _ ) As Long
Private Declare Function RegDeleteValue _ Lib "advapi32.dll" _ Alias "RegDeleteValueA" _ ( _ ByVal hKey As Long, _ ByVal lpValueName As String _ ) As Long
Private Declare Function RegCloseKey _ Lib "advapi32.dll" _ ( _ ByVal hKey As Long _ ) As Long
Private Sub Main() Call DeleteValueByType(HKEY_LOCAL_MACHINE, "SOFTWAREMySoft", REG_BINARY) End Sub
Private Sub DeleteValueByType(ByRef Key As Long, ByRef SubKeyPath As String, ByRef ValueType As Long)
Dim hKey As Long Dim lKeyCount As Long Dim sName As String Dim lNameLenght As Long Dim lType As Long Const BUFFER_SIZE As Long = 255
If (RegOpenKey(Key, SubKeyPath, hKey) = ERROR_SUCCESS) Then
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Salut Nicolas! :O)
Tu peux utiliser l'api RegEnumValue() sur la clé désirée afin d'énumérer les
valeurs de celles-ci, ensuite tu vérifie le type de valeur pour qu'il soit
égal à REG_BINARY et si c'est le cas tu supprimes. ;O)
Voici un exemple :
'***
' Module1
Option Explicit
Private Const HKEY_LOCAL_MACHINE As Long = &H80000002
Private Const REG_BINARY As Long = 3
Private Const ERROR_SUCCESS As Long = 0
Private Const ERROR_NO_MORE_ITEMS As Long = &H103
Private Declare Function RegOpenKey _
Lib "advapi32.dll" _
Alias "RegOpenKeyA" _
( _
ByVal hKey As Long, _
ByVal lpSubKey As String, _
ByRef phkResult As Long _
) As Long
Private Declare Function RegEnumValue _
Lib "advapi32.dll" _
Alias "RegEnumValueA" _
( _
ByVal hKey As Long, _
ByVal dwIndex As Long, _
ByVal lpValueName As String, _
ByRef lpcbValueName As Long, _
ByVal lpReserved As Long, _
ByRef lpType As Long, _
ByRef lpData As Byte, _
ByRef lpcbData As Long _
) As Long
Private Declare Function RegDeleteValue _
Lib "advapi32.dll" _
Alias "RegDeleteValueA" _
( _
ByVal hKey As Long, _
ByVal lpValueName As String _
) As Long
Private Declare Function RegCloseKey _
Lib "advapi32.dll" _
( _
ByVal hKey As Long _
) As Long
Private Sub Main()
Call DeleteValueByType(HKEY_LOCAL_MACHINE, "SOFTWAREMySoft",
REG_BINARY)
End Sub
Private Sub DeleteValueByType(ByRef Key As Long, ByRef SubKeyPath As String,
ByRef ValueType As Long)
Dim hKey As Long
Dim lKeyCount As Long
Dim sName As String
Dim lNameLenght As Long
Dim lType As Long
Const BUFFER_SIZE As Long = 255
If (RegOpenKey(Key, SubKeyPath, hKey) = ERROR_SUCCESS) Then
Tu peux utiliser l'api RegEnumValue() sur la clé désirée afin d'énumérer les valeurs de celles-ci, ensuite tu vérifie le type de valeur pour qu'il soit égal à REG_BINARY et si c'est le cas tu supprimes. ;O)
Voici un exemple : '*** ' Module1 Option Explicit
Private Const HKEY_LOCAL_MACHINE As Long = &H80000002 Private Const REG_BINARY As Long = 3 Private Const ERROR_SUCCESS As Long = 0 Private Const ERROR_NO_MORE_ITEMS As Long = &H103
Private Declare Function RegOpenKey _ Lib "advapi32.dll" _ Alias "RegOpenKeyA" _ ( _ ByVal hKey As Long, _ ByVal lpSubKey As String, _ ByRef phkResult As Long _ ) As Long
Private Declare Function RegEnumValue _ Lib "advapi32.dll" _ Alias "RegEnumValueA" _ ( _ ByVal hKey As Long, _ ByVal dwIndex As Long, _ ByVal lpValueName As String, _ ByRef lpcbValueName As Long, _ ByVal lpReserved As Long, _ ByRef lpType As Long, _ ByRef lpData As Byte, _ ByRef lpcbData As Long _ ) As Long
Private Declare Function RegDeleteValue _ Lib "advapi32.dll" _ Alias "RegDeleteValueA" _ ( _ ByVal hKey As Long, _ ByVal lpValueName As String _ ) As Long
Private Declare Function RegCloseKey _ Lib "advapi32.dll" _ ( _ ByVal hKey As Long _ ) As Long
Private Sub Main() Call DeleteValueByType(HKEY_LOCAL_MACHINE, "SOFTWAREMySoft", REG_BINARY) End Sub
Private Sub DeleteValueByType(ByRef Key As Long, ByRef SubKeyPath As String, ByRef ValueType As Long)
Dim hKey As Long Dim lKeyCount As Long Dim sName As String Dim lNameLenght As Long Dim lType As Long Const BUFFER_SIZE As Long = 255
If (RegOpenKey(Key, SubKeyPath, hKey) = ERROR_SUCCESS) Then