Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1808 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Probleme Ecriture base de registre VB

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme Ecriture base de registre VB

n°1836460
Thebozo35
...
Posté le 10-01-2009 à 22:16:11  profilanswer
 

Salut a tous, je me remet a VB car je n'y avait pas touché depuis ....arf... Donc voila, je suis confronté a un problème: je souhaite creer une cle dans la base de registre. je me suis inspiré de codes trouver un peu partout pour parvenir a mes fin mais voila, lorsque je lance cette action dans mon appli, RIEN NE SE PASSE....
Plus concrètement, l'action que je veux effectuer serai de désactiver le clic droit sur le bureau, il faut donc crée la cle "NoViewContextMenu" dans "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" et lui attribuer une valeur DWORD de 0 ou 1 que l'on veuille ou non désactiver celui ci.
 
Je ne conanis pas trop encore VB, mais je pense avoir bien suivi les explications pour l'ecriture dans le registre...
 
Voici le code:
 
Declarations:
 

Code :
  1. Option Explicit
  2. 'API utilisée pour fermer une clé ouverte
  3. Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal Hkey As Long) As Long
  4. 'efface une valeur de clé
  5. Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal Hkey As Long, ByVal lpValueName As String) As Long
  6. 'créé une clé registre
  7. Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal Hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
  8. 'affecte une valeur
  9. Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal Hkey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
  10. 'clé root Hkey Local Machine
  11. Private Const HKEY_LOCAL_MACHINE = &H80000002
  12. Private Const HKEY_CURRENT_USER = &H80000001
  13. 'ZONE TEST CLE DWORD
  14. Private Const REG_DWORD = 4
  15. 'type de clé REG_SZ
  16. Private Const REG_SZ = 1


 
 
Fonctions a lancer:
 

Code :
  1. Public Sub RightClic(ByVal bActivateOrNot As Boolean, Optional ByVal sFile As Long)
  2. 'Fonction qui active (ou non) le clic droit sur le bureau
  3. 'C'est une simple création de valeur de clé :
  4. 'Dans la clé :
  5. 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
  6. 'il faut modifier une cle DWORD
  7. 'de nom=NoViewContextMenu
  8. 'avec valeur=0 pour activer
  9. 'ou valeur=1 pour desactiver
  10. Dim lRet As Long, sPath2 As String, sName As String
  11. 'path de la clé
  12. sPath2 = "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"
  13. 'nom de la clé
  14. sName = "NoViewContextMenu"
  15. If bActivateOrNot Then
  16.     '//on ajoute la clé
  17.     'créé la clé
  18.     RegCreateKey HKEY_CURRENT_USER, sPath2, lRet
  19.     'sauvegarde la string désirée dans la clé
  20.     RegSetValueEx lRet, sName, 1, REG_DWORD, ByVal sFile, 4
  21.     'ferme la clé
  22.     RegCloseKey lRet
  23. Else
  24.     '//on ajoute la clé
  25.     'créé la clé
  26.     RegCreateKey HKEY_CURRENT_USER, sPath2, lRet
  27.     'sauvegarde la string désirée dans la clé
  28.     RegSetValueEx lRet, sName, 1, REG_DWORD, ByVal sFile, 4
  29.     'ferme la clé
  30.     RegCloseKey lRet
  31. End If
  32. End Sub
  33. Private Sub rightClic_Off_Click()
  34. Dim sDonnee As String
  35. 'sDonnee est la valeur a attribuer a la clef: 0 pour desctiver, 1 pour activer
  36. sDonnee = 0
  37. RightClic False, sDonnee
  38. MsgBox "Clic Droit Sur le bureau desactivé", vbInformation, "Ok !"
  39. End Sub
  40. Private Sub rightClic_on_Click()
  41. Dim sDonnee As String
  42. sDonnee = 1
  43. RightClic True, sDonnee
  44. MsgBox "Clic Droit Sur le bureau activé", vbInformation, "Ok !"
  45. End Sub


 
 
je sais que sa peux saouler mais j'aimerai vraiment reussir a saisir comment effectuer l'ecriture dans la BDR, par exemple en connaissant a quoi correspondent les variables demandees...
 
Bref...jespere que vous reussirez a m'aider...
 
MERCI D'AVANNNCE!!

mood
Publicité
Posté le 10-01-2009 à 22:16:11  profilanswer
 

n°1838089
tegu
Posté le 15-01-2009 à 10:13:12  profilanswer
 

Va voir le site suivant http://files.codes-sources.com/fic [...] GISTRY.BAS
Ça devrait faire le tour de ta question.

n°2143295
Manaouf06
Cool mon avatar invisible
Posté le 22-05-2012 à 12:03:43  profilanswer
 

tegu a écrit :

Va voir le site suivant http://files.codes-sources.com/fic [...] GISTRY.BAS
Ça devrait faire le tour de ta question.


Gros déterrage de topic : quelqu'un a la vraie solution ? le code proposé stocke le DWORD sous forme de chaine et fait la conversion à la volée  :kaola:  
 
l'API RegSetValueEx stocke la valeur DWORD sous forme ASCII. Par exemple je veux écrire 123 (0x7B), la valeur réellement écrite est 0x00333231 !!! Bien sûr si on veut écrire une valeur > 9999 il y aura troncature.
 
J'ai rien trouvé sur le web  :fou:


---------------
La vie s'appelle suicide-toi, et le diable rit avec moi.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Probleme Ecriture base de registre VB

 

Sujets relatifs
Requette Select dans VB et ACCESSProblème Identification, Connexion
Python, problème avec les tableauxProblème de sélection dans une ComboBox
Problème Design sous IE7probleme xsl
[RESOLU] Probleme synchro threadbatch qui trouve un sid puis l'intègre dans une clé de registre
[Résolu][C] probleme avec une macroProblème à centrer une image [RESOLU]
Plus de sujets relatifs à : Probleme Ecriture base de registre VB


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR