Page 1 sur 2

Effacer une clef du registre

Publié : mar. 04/janv./2005 20:05
par Oliv
J'ai touvé sur CodeArchiv un exemple pour ajouter une clef registre mais pour l'effacer ça ne marche pas :( et je ne comprends pas pourquoi.
savez vous comment faire ?

Publié : mar. 04/janv./2005 22:58
par Le Soldat Inconnu
regarde ici :
http://purebasic.hmt-forum.com/viewtopic.php?t=1024

regarde dans la procedure Demarrage() au "Case #Supprimer"

Publié : mar. 04/janv./2005 23:07
par Oliv
Merci je vais regarder demain :D

Publié : mer. 05/janv./2005 17:59
par Anonyme2
J'avais mis aussi un code dispo pour gérer les adresses internet de IE

Le code source est
ici

Il y a une procedure qui s'appelle
EffaceUrl_Du_Registre(type_cle, sous_cle$)

qui permet entre autre d'effacer une clé du registre

Publié : mer. 05/janv./2005 18:49
par julien
Moi j'utilise la lib RegINI car elle possede plusieurs fonction pour le registre (lire, lister, détruire, créer) sur purearea.net

Publié : mer. 05/janv./2005 19:33
par Anonyme2
Toujours Ho toujours faire une sauvegarde du registre si on est pas sur du code :roll: car après ça craint un max si on a effacé des mauvaises clées. :mrgreen:

Publié : lun. 14/févr./2005 12:38
par Oliv
ça y est j'ai enfin réussi : JBernard tu vois que l'on peut mettre du temps :lol: Merci Denis

Publié : lun. 14/févr./2005 13:01
par Oliv
En fait non :twisted:
Je ne comprends pas :
L'adresse de ma clef

Code : Tout sélectionner

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\Usb Autorun.exe
et mon code

Code : Tout sélectionner

hKey.l
If RegOpenKeyEx_(#HKEY_LOCAL_MACHINE,"Software\Microsoft\Windows\CurrentVersion\Run",0,#KEY_SET_VALUE,@hKey) = #ERROR_SUCCESS
  Resultat = RegDeleteKey_(hKey,"Usb Autorun.exe")
  Debug Resultat
  RegCloseKey_(hKey)
  SetMenuItemState(0,#Demarrage,0)
  EndIf
Avez vous une idée ? Résultat devrait être à 0

Publié : lun. 14/févr./2005 18:29
par hardy
un KEY_ALL_ACCESS serait plus convenable...

Publié : lun. 14/févr./2005 18:36
par Oliv
Pourquoi ? Puisque dans le MSDN il est indiqué que pour effacer une clef Key_Set_Value est suffisant ? :(
Sinon je vais essayer :)

Publié : lun. 14/févr./2005 19:11
par Anonyme2
regarde d'abord l'erreur retournée par RegOpenKeyEx, tu auras ensuite la solution.

Si tu énumères les clées, tu ne peux pas les effacer dans ce mode.

Publié : lun. 14/févr./2005 19:29
par Oliv
RegOpenKeyEx ne rapporte pas d'erreur ;)

Publié : lun. 14/févr./2005 19:34
par Anonyme2
Alors ça marche :D


et t'as testé le retour de RegDeleteKey ?

Publié : lun. 14/févr./2005 20:04
par Oliv
Erreur 2 : Fichier inconnu :?:

Publié : lun. 14/févr./2005 21:49
par Le Soldat Inconnu
Pour une clé, c'est comme ça

Code : Tout sélectionner

If RegDeleteKey_(#HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies\Comdlg32\PlacesBar") = 0
      Debug "OK"
    EndIf
pour une valeur, il faut utiliser RegDeleteValue_ dans ce que tu fais à la place de RegDeleteKey_ et avec un #KEY_ALL_ACCESS comme le dis Hardy