Est-ce qu'il ne faut pas d'abord tester l'existence de la clef ? Si elle
n'est pas présente dans le registre, on doit obtenir ce genre d'erreur...
Par contre, je ne sais pas comment on fait pour tester l'existence de
cette
clef.
Cordialement,
François RIVIERRE
Est-ce qu'il ne faut pas d'abord tester l'existence de la clef ? Si elle
n'est pas présente dans le registre, on doit obtenir ce genre d'erreur...
Par contre, je ne sais pas comment on fait pour tester l'existence de
cette
clef.
Cordialement,
François RIVIERRE
Est-ce qu'il ne faut pas d'abord tester l'existence de la clef ? Si elle
n'est pas présente dans le registre, on doit obtenir ce genre d'erreur...
Par contre, je ne sais pas comment on fait pour tester l'existence de
cette
clef.
Cordialement,
François RIVIERRE
Bonjour,
Effectivement, ce qui m'intéresserait serait d'abord de tester, puis si elle
existe, la supprimer.
Le problème est que si je n'arrive pas à la lire, comment puisje tester sa
présence?
Merci de ta réponse,
FRED.
"François Rivierre" a écrit dans le message de news:
%Est-ce qu'il ne faut pas d'abord tester l'existence de la clef ? Si elle
n'est pas présente dans le registre, on doit obtenir ce genre d'erreur...
Par contre, je ne sais pas comment on fait pour tester l'existence de
cette
clef.
Cordialement,
François RIVIERRE
Bonjour,
Effectivement, ce qui m'intéresserait serait d'abord de tester, puis si elle
existe, la supprimer.
Le problème est que si je n'arrive pas à la lire, comment puisje tester sa
présence?
Merci de ta réponse,
FRED.
"François Rivierre" <FRiviR2@aol.com> a écrit dans le message de news:
%23iF7FZXfFHA.3304@TK2MSFTNGP12.phx.gbl...
Est-ce qu'il ne faut pas d'abord tester l'existence de la clef ? Si elle
n'est pas présente dans le registre, on doit obtenir ce genre d'erreur...
Par contre, je ne sais pas comment on fait pour tester l'existence de
cette
clef.
Cordialement,
François RIVIERRE
Bonjour,
Effectivement, ce qui m'intéresserait serait d'abord de tester, puis si elle
existe, la supprimer.
Le problème est que si je n'arrive pas à la lire, comment puisje tester sa
présence?
Merci de ta réponse,
FRED.
"François Rivierre" a écrit dans le message de news:
%Est-ce qu'il ne faut pas d'abord tester l'existence de la clef ? Si elle
n'est pas présente dans le registre, on doit obtenir ce genre d'erreur...
Par contre, je ne sais pas comment on fait pour tester l'existence de
cette
clef.
Cordialement,
François RIVIERRE
Bonjour,
Je fais le script suivant pour lire une clef de registre, afin de
vérifier sa présence.
dim registre, clef
Set registre = CreateObject ("Wscript.Shell")
clef = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
Wscript.Echo registre.RegRead (clef)
Mais invariablement, j'obtiens une erreur me disant:
"impossible d'ouvrir la clef de registre"
... Quelqu'un saurait-il où se trouve l'erreur?
Bonjour,
Je fais le script suivant pour lire une clef de registre, afin de
vérifier sa présence.
dim registre, clef
Set registre = CreateObject ("Wscript.Shell")
clef = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
Wscript.Echo registre.RegRead (clef)
Mais invariablement, j'obtiens une erreur me disant:
"impossible d'ouvrir la clef de registre"
... Quelqu'un saurait-il où se trouve l'erreur?
Bonjour,
Je fais le script suivant pour lire une clef de registre, afin de
vérifier sa présence.
dim registre, clef
Set registre = CreateObject ("Wscript.Shell")
clef = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
Wscript.Echo registre.RegRead (clef)
Mais invariablement, j'obtiens une erreur me disant:
"impossible d'ouvrir la clef de registre"
... Quelqu'un saurait-il où se trouve l'erreur?
Quelques pistes :
Function RegKeyExists(strHive,StrRegKey)
Set objReg = GetObject("winmgmts:rootdefault:StdRegProv")
If objReg.EnumValues(varRegHive, varRegKey, arrayValueNames,
arrayValueTypes) = 0 Then
RegKeyExists = True
Else
RegKeyExists = False
End If
Set objReg = Nothing
End Function
Référence :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/enumvalues_method_in_class_stdregprov.asp
--
Cdlt
StéphaneBonjour,
Effectivement, ce qui m'intéresserait serait d'abord de tester, puis si
elle
existe, la supprimer.
Le problème est que si je n'arrive pas à la lire, comment puisje tester
sa
présence?
Merci de ta réponse,
FRED.
"François Rivierre" a écrit dans le message de news:
%Est-ce qu'il ne faut pas d'abord tester l'existence de la clef ? Si
elle
n'est pas présente dans le registre, on doit obtenir ce genre
d'erreur...
Par contre, je ne sais pas comment on fait pour tester l'existence de
cette
clef.
Cordialement,
François RIVIERRE
Quelques pistes :
Function RegKeyExists(strHive,StrRegKey)
Set objReg = GetObject("winmgmts:rootdefault:StdRegProv")
If objReg.EnumValues(varRegHive, varRegKey, arrayValueNames,
arrayValueTypes) = 0 Then
RegKeyExists = True
Else
RegKeyExists = False
End If
Set objReg = Nothing
End Function
Référence :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/enumvalues_method_in_class_stdregprov.asp
--
Cdlt
Stéphane
Bonjour,
Effectivement, ce qui m'intéresserait serait d'abord de tester, puis si
elle
existe, la supprimer.
Le problème est que si je n'arrive pas à la lire, comment puisje tester
sa
présence?
Merci de ta réponse,
FRED.
"François Rivierre" <FRiviR2@aol.com> a écrit dans le message de news:
%23iF7FZXfFHA.3304@TK2MSFTNGP12.phx.gbl...
Est-ce qu'il ne faut pas d'abord tester l'existence de la clef ? Si
elle
n'est pas présente dans le registre, on doit obtenir ce genre
d'erreur...
Par contre, je ne sais pas comment on fait pour tester l'existence de
cette
clef.
Cordialement,
François RIVIERRE
Quelques pistes :
Function RegKeyExists(strHive,StrRegKey)
Set objReg = GetObject("winmgmts:rootdefault:StdRegProv")
If objReg.EnumValues(varRegHive, varRegKey, arrayValueNames,
arrayValueTypes) = 0 Then
RegKeyExists = True
Else
RegKeyExists = False
End If
Set objReg = Nothing
End Function
Référence :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/enumvalues_method_in_class_stdregprov.asp
--
Cdlt
StéphaneBonjour,
Effectivement, ce qui m'intéresserait serait d'abord de tester, puis si
elle
existe, la supprimer.
Le problème est que si je n'arrive pas à la lire, comment puisje tester
sa
présence?
Merci de ta réponse,
FRED.
"François Rivierre" a écrit dans le message de news:
%Est-ce qu'il ne faut pas d'abord tester l'existence de la clef ? Si
elle
n'est pas présente dans le registre, on doit obtenir ce genre
d'erreur...
Par contre, je ne sais pas comment on fait pour tester l'existence de
cette
clef.
Cordialement,
François RIVIERRE
Dans le message news:% ,
FRED s'est ainsi exprimé:Bonjour,
Je fais le script suivant pour lire une clef de registre, afin de
vérifier sa présence.
dim registre, clef
Set registre = CreateObject ("Wscript.Shell")
clef = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
Wscript.Echo registre.RegRead (clef)
Mais invariablement, j'obtiens une erreur me disant:
"impossible d'ouvrir la clef de registre"
... Quelqu'un saurait-il où se trouve l'erreur?
Quand tu écris :
clef = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
avec un "" final
la commande RegRead (clef)
signifie que tu demandes à lire la VALEUR PAR DÉFAUT de cette clef
Or elle n'existe pas forcément ("(valeur non définie)" dans REGEDIT)
D'où erreur ...
Il faut donc effectuer des tests d'existence, et pour cela désactiver la
gestion des erreurs :
Voila la fonction "passe-partout" que j'ai écrite :
Function ReadKey(key)
On Error Resume Next
ReadKey=shell.RegRead(key)
If Err.Number<>0 Then
If right(key,1)<>"" Then key=key & ""
Err.Clear
ReadKey=shell.RegRead(key)
If Err.Number<>0 Then Wscript.Echo "Erreur dans la lecture de la clef"
& vbcrlf & key
End If
end function
Explication :
On Error Resume Next
Si une erreur survient, on continue quand même !
If Err.Number<>0 Then
On teste si une erreur a eu lieu (clef non trouvée)
If right(key,1)<>"" Then key=key & ""
Test de clef au lieu d'entrée
Err.Clear
effacement de l'erreur
ReadKey=shell.RegRead(key)
on recommence (avec un à la fin)
If Err.Number<>0 Then Wscript.Echo ....
L'erreur persiste, donc la clef ou l'entrée n'existe pas
(ici j'écris un message, mais on pourrait aussi positionner un flag)
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*
Dans le message news:%23z43ZqWfFHA.1412@TK2MSFTNGP09.phx.gbl ,
FRED <nospam@nospam.com> s'est ainsi exprimé:
Bonjour,
Je fais le script suivant pour lire une clef de registre, afin de
vérifier sa présence.
dim registre, clef
Set registre = CreateObject ("Wscript.Shell")
clef = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
Wscript.Echo registre.RegRead (clef)
Mais invariablement, j'obtiens une erreur me disant:
"impossible d'ouvrir la clef de registre"
... Quelqu'un saurait-il où se trouve l'erreur?
Quand tu écris :
clef = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
avec un "" final
la commande RegRead (clef)
signifie que tu demandes à lire la VALEUR PAR DÉFAUT de cette clef
Or elle n'existe pas forcément ("(valeur non définie)" dans REGEDIT)
D'où erreur ...
Il faut donc effectuer des tests d'existence, et pour cela désactiver la
gestion des erreurs :
Voila la fonction "passe-partout" que j'ai écrite :
Function ReadKey(key)
On Error Resume Next
ReadKey=shell.RegRead(key)
If Err.Number<>0 Then
If right(key,1)<>"" Then key=key & ""
Err.Clear
ReadKey=shell.RegRead(key)
If Err.Number<>0 Then Wscript.Echo "Erreur dans la lecture de la clef"
& vbcrlf & key
End If
end function
Explication :
On Error Resume Next
Si une erreur survient, on continue quand même !
If Err.Number<>0 Then
On teste si une erreur a eu lieu (clef non trouvée)
If right(key,1)<>"" Then key=key & ""
Test de clef au lieu d'entrée
Err.Clear
effacement de l'erreur
ReadKey=shell.RegRead(key)
on recommence (avec un à la fin)
If Err.Number<>0 Then Wscript.Echo ....
L'erreur persiste, donc la clef ou l'entrée n'existe pas
(ici j'écris un message, mais on pourrait aussi positionner un flag)
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
Jean-Claude.Bellamy@wanadoo.fr * JC.Bellamy@free.fr
Dans le message news:% ,
FRED s'est ainsi exprimé:Bonjour,
Je fais le script suivant pour lire une clef de registre, afin de
vérifier sa présence.
dim registre, clef
Set registre = CreateObject ("Wscript.Shell")
clef = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
Wscript.Echo registre.RegRead (clef)
Mais invariablement, j'obtiens une erreur me disant:
"impossible d'ouvrir la clef de registre"
... Quelqu'un saurait-il où se trouve l'erreur?
Quand tu écris :
clef = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
avec un "" final
la commande RegRead (clef)
signifie que tu demandes à lire la VALEUR PAR DÉFAUT de cette clef
Or elle n'existe pas forcément ("(valeur non définie)" dans REGEDIT)
D'où erreur ...
Il faut donc effectuer des tests d'existence, et pour cela désactiver la
gestion des erreurs :
Voila la fonction "passe-partout" que j'ai écrite :
Function ReadKey(key)
On Error Resume Next
ReadKey=shell.RegRead(key)
If Err.Number<>0 Then
If right(key,1)<>"" Then key=key & ""
Err.Clear
ReadKey=shell.RegRead(key)
If Err.Number<>0 Then Wscript.Echo "Erreur dans la lecture de la clef"
& vbcrlf & key
End If
end function
Explication :
On Error Resume Next
Si une erreur survient, on continue quand même !
If Err.Number<>0 Then
On teste si une erreur a eu lieu (clef non trouvée)
If right(key,1)<>"" Then key=key & ""
Test de clef au lieu d'entrée
Err.Clear
effacement de l'erreur
ReadKey=shell.RegRead(key)
on recommence (avec un à la fin)
If Err.Number<>0 Then Wscript.Echo ....
L'erreur persiste, donc la clef ou l'entrée n'existe pas
(ici j'écris un message, mais on pourrait aussi positionner un flag)
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*
Bonjour,
Merci, je vais essayer en espérant plus de succés...
J'ai bien compris, il faut rajouter mon nom de clef :If
right(key,1)<>"HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
Then key=key & "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
?
If right(key,1)<>"" Then key=key & ""
Test de clef au lieu d'entrée
Bonjour,
Merci, je vais essayer en espérant plus de succés...
J'ai bien compris, il faut rajouter mon nom de clef :If
right(key,1)<>"HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
Then key=key & "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
?
If right(key,1)<>"" Then key=key & ""
Test de clef au lieu d'entrée
Bonjour,
Merci, je vais essayer en espérant plus de succés...
J'ai bien compris, il faut rajouter mon nom de clef :If
right(key,1)<>"HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
Then key=key & "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
?
If right(key,1)<>"" Then key=key & ""
Test de clef au lieu d'entrée
Dans le message news: ,
FRED s'est ainsi exprimé:Bonjour,
Merci, je vais essayer en espérant plus de succés...
J'ai bien compris, il faut rajouter mon nom de clef :If
right(key,1)<>"HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
Then key=key & "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
?
?????????????
Ouh la la !!!!!!!!
Tu N'AS PAS LU DU TOUT ce que j'ai écrit !If right(key,1)<>"" Then key=key & ""
Test de clef au lieu d'entrée
En VBS, quand on utilise RegRead ou RegWrite, qui servent EXCLUSIVEMENT à
lire ou écrire une ENTRÉE,
Si le paramètre transmis ne se termine pas par "",
cela signifie que le dernier segment est le nom
d'une entrée.
HKLMSoftwareProgToto
-> on lit (ou écrit) l'entrée "toto"
de la clef HKLMSoftwareProg
Si le paramètre transmis se termine par "",
cela signifie que l'on traite l'entrée par DÉFAUT
HKLMSoftwareProgToto
-> on lit (ou écrit) l'entrée par défaut
de la clef HKLMSoftwareProgToto
Et je t'ai donné un script GÉNÉRIQUE !
Une fonction à laquelle on passe une clef en paramètre ...
Dans *TON* cas, avec une clef BIEN PRÉCISE, tu ne vas pas t'amuser à çà,
réfléchis un peu!
(sauf si ton script doit être utilisé pour autre chose)
Ce qui compte, c'est que tu empêches l'arrêt du script en cas d'erreur ...
On error resume next
....
Set registre = CreateObject ("Wscript.Shell")
clef = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
valeur=registre.RegRead (clef)
if Err.Number<>0 then
Wscript.Echo "Entrée par défaut non définie"
else
Wscript.Echo valeur
end if
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*
Dans le message news:ug4LufhfFHA.2268@TK2MSFTNGP15.phx.gbl ,
FRED <nospam@nospam.com> s'est ainsi exprimé:
Bonjour,
Merci, je vais essayer en espérant plus de succés...
J'ai bien compris, il faut rajouter mon nom de clef :If
right(key,1)<>"HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
Then key=key & "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
?
?????????????
Ouh la la !!!!!!!!
Tu N'AS PAS LU DU TOUT ce que j'ai écrit !
If right(key,1)<>"" Then key=key & ""
Test de clef au lieu d'entrée
En VBS, quand on utilise RegRead ou RegWrite, qui servent EXCLUSIVEMENT à
lire ou écrire une ENTRÉE,
Si le paramètre transmis ne se termine pas par "",
cela signifie que le dernier segment est le nom
d'une entrée.
HKLMSoftwareProgToto
-> on lit (ou écrit) l'entrée "toto"
de la clef HKLMSoftwareProg
Si le paramètre transmis se termine par "",
cela signifie que l'on traite l'entrée par DÉFAUT
HKLMSoftwareProgToto
-> on lit (ou écrit) l'entrée par défaut
de la clef HKLMSoftwareProgToto
Et je t'ai donné un script GÉNÉRIQUE !
Une fonction à laquelle on passe une clef en paramètre ...
Dans *TON* cas, avec une clef BIEN PRÉCISE, tu ne vas pas t'amuser à çà,
réfléchis un peu!
(sauf si ton script doit être utilisé pour autre chose)
Ce qui compte, c'est que tu empêches l'arrêt du script en cas d'erreur ...
On error resume next
....
Set registre = CreateObject ("Wscript.Shell")
clef = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
valeur=registre.RegRead (clef)
if Err.Number<>0 then
Wscript.Echo "Entrée par défaut non définie"
else
Wscript.Echo valeur
end if
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
Jean-Claude.Bellamy@wanadoo.fr * JC.Bellamy@free.fr
Dans le message news: ,
FRED s'est ainsi exprimé:Bonjour,
Merci, je vais essayer en espérant plus de succés...
J'ai bien compris, il faut rajouter mon nom de clef :If
right(key,1)<>"HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
Then key=key & "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
?
?????????????
Ouh la la !!!!!!!!
Tu N'AS PAS LU DU TOUT ce que j'ai écrit !If right(key,1)<>"" Then key=key & ""
Test de clef au lieu d'entrée
En VBS, quand on utilise RegRead ou RegWrite, qui servent EXCLUSIVEMENT à
lire ou écrire une ENTRÉE,
Si le paramètre transmis ne se termine pas par "",
cela signifie que le dernier segment est le nom
d'une entrée.
HKLMSoftwareProgToto
-> on lit (ou écrit) l'entrée "toto"
de la clef HKLMSoftwareProg
Si le paramètre transmis se termine par "",
cela signifie que l'on traite l'entrée par DÉFAUT
HKLMSoftwareProgToto
-> on lit (ou écrit) l'entrée par défaut
de la clef HKLMSoftwareProgToto
Et je t'ai donné un script GÉNÉRIQUE !
Une fonction à laquelle on passe une clef en paramètre ...
Dans *TON* cas, avec une clef BIEN PRÉCISE, tu ne vas pas t'amuser à çà,
réfléchis un peu!
(sauf si ton script doit être utilisé pour autre chose)
Ce qui compte, c'est que tu empêches l'arrêt du script en cas d'erreur ...
On error resume next
....
Set registre = CreateObject ("Wscript.Shell")
clef = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSLicensing"
valeur=registre.RegRead (clef)
if Err.Number<>0 then
Wscript.Echo "Entrée par défaut non définie"
else
Wscript.Echo valeur
end if
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*