Errreur lors de la lecture du registre

cs_Stevous Messages postés 33 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 14 mars 2006 - 15 févr. 2006 à 12:11
cs_Stevous Messages postés 33 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 14 mars 2006 - 15 févr. 2006 à 14:43
Salut
J ai testé un petit script pour lire le registre de PC que voici :

'Dim msg

Set WshShell = CreateObject("WScript.Shell")

WshShell.RegRead "HKCU\Software\Adobe"

If "HKCU\Software\Adobe" = True Then
msg = MsgBox ("Adobe est installé")

End if'

A l exécution, il me met ce message d'erreur :
'Impossible d'ouvrir la clé de registre "HKCU\Software\Adobe" pour la lecture.

Ce script doit détecter si un programme est disponible sur le PC et s'il ne l'est pas, réaliser son installation.

Si quelqu un pouvait déterminer la cause de mon problème, ce serait sympa. Merci d'avance

3 réponses

Egyde Messages postés 158 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 16 juillet 2007
15 févr. 2006 à 13:00
Déjà, puisque "HKCU\Software\Adobe" est une chaîne de caractère, ton dernier test devrait renvoyer une erreur "type mismatch".

Ensuite, pour lire une clé (un répertoire), le dernier \ est important :
WshShell.RegRead "HKCU\Software\Adobe"

Enfin, concernant ton msg d'erreur à la lecture, ça s'explique par le fait que la valeur par défaut de la clé "Adobe" n'est pas définie. Modifie la valeur par défaut à l'aide de regedit et tu verras que tout rentre dans l'ordre.

Pour conclure, je pense pas que ce soit possible de détecter la présence d'une clé "quelconque" à l'aide de l'objet ("WScript.Shell"). Tu trouveras des codes sur le NET qui utilise l'erreur renvoyée par RegRead pour décider si oui ou non la clé existe mais si tu as bien compris ma précédente remarque, ce n'est fiable que pour des clés dont une valeur par défaut a été préalablement définie.

Solution?? API??
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
15 févr. 2006 à 13:16
salut,

certaines instructions d'accès registre par objet (WScript) sont parfois (souvent?) interprétées comme une commande "virale".

rien que pour çà, çà suffit à être convaincu d'utiliser les API.

tu y verras un exemple concis sur ma source AfConfig.



Egyde -> tu peux néanmois lire et écrire ; très rapide et facile pour une programme au démarrage par exemple...



++

PCPT [AFCK]
0
cs_Stevous Messages postés 33 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 14 mars 2006
15 févr. 2006 à 14:43
On ne peut pas utiliser les API avec le VBS car elles ne sont pas supportées. Je vais essayer de faire des recherches sur RegRead et je vous informe de mes progrès ou surement de mes soucis.

Merci pour votre aide
0