Base de registre - clé par défaut

cs_zephyrin Messages postés 47 Date d'inscription mercredi 29 mai 2002 Statut Membre Dernière intervention 17 août 2006 - 15 déc. 2004 à 19:15
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 15 déc. 2004 à 22:14
Bonjour,

je souhaite récupérer la valeur d'une clé "par défaut".
exemple : celle d'IE :
HKEY_CLASSES_ROOT\Applications\iexplore.exe\shell\open\command

Je le fait avec la commande :
Set pobjRegistre = CreateObject("WScript.Shell")
Dim sLocalisationIE As String
sLocalisationIE = pobjRegistre.Regread("HKEY_CLASSES_ROOT\Applications\iexplore.exe\shell\open\command")
Mais ça ne marche pas car je n'arrive pas à donner le bon nom de la clé.
Le code est bon car pour la clé
sSepDecimal= pobjRegistre.Regread("HKEY_CURRENT_USER\Control Panel\International\sDecimal")
Ca marche

Comment faire ?
Merci

Zephyrin

1 réponse

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
15 déc. 2004 à 22:14
A ce que j'ai cru comprendre, le WScript.Shell n'est pas capable de lire et écrire ailleurs que dans HKEY_CURRENT_USER.
Personnellement, en VB6, je passe par les API Windows.

G déjà posté un exemple http://www.vbfrance.com/forum.v2.aspx?ID=351662

Là, il s'agissait de trouver la localisation d'Excel.

Tu n'a qu'à remplacer

Private Sub Form_Load()
Dim s As String
s = GetString(&H80000000, "Excel.Application\CLSID", "")
s = GetString(&H80000000, "CLSID" & s & "\LocalServer32", "")
s = Trim(Left$(s, InStr(1, s, "/") - 1))
MsgBox s
End Sub


par

Private Sub Form_Load()
Dim s As String
s = GetString(&H80000000, "Applications\iexplore.exe\shell\open\command", "")
s = Trim(Left$(s, InStr(1, s, "%") - 1))
MsgBox s
End Sub


&H80000000 représente le HKEY_CLASSES_ROOT.

Bien sûr, ça fait appel à une dll (advapi32.dll) mais pour l'instant, je n'ai rien trouvé de mieux et plus rapide.

En VB.NET, c'est sans doute plus simple mais je ne sais pas encore faire.

@+

Cordialement, CanisLupus
0
Rejoignez-nous