Verifier clé registre et si OK lire la clé

Résolu
Signaler
Messages postés
32
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
14 février 2016
-
Messages postés
32
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
14 février 2016
-
je voudrait cérivier la présence ou non d'antivirus sur un ordinateur :

sur mon ordinateur, j'ai Avast : dans le registre, on peut voir le chemin par la clé :
HKEY_LOCAL_MACHINE\SOFTWARE\ALWIL Software\Avast\4.0\Avast4ProgramFolder
contenant :
C:\Program Files\Alwil Software\Avast4

donc, je voudrait dans un premier temps que le programme regarde su la clé existe, et si elle existe, dans un second temps, qu'il lise le contenu et qu'il mette ca dans une variable, du genre : AV

MAIS, je voudrait répéter ce script pour 2 ou 3 antivirus, pour que ce programme puisse fonctionner aussi avec Norton antivirus, bitdefender, et encore plein d'autres... donc :

si la premiere recherche , il trouve rien il passe à la 2eme, sinon, si il trouve, il s'arrete, et fait cette analyse(bien sur, apres, je doit lui dire quel .exe doit faire l'analyse, mais ca, c'est apres.)

voila voila, j'espere que vous avec compris un peu ce que je souhaite faire...

merci, a bientot

NM

12 réponses

Messages postés
23
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
13 décembre 2010

ok ok ....

donc :
'-------------------------
const HKEY_LOCAL_MACHINE = &H80000002

strComputer = "."
Set oReg=GetObject( _
"winmgmts:{impersonationLevel=impersonate}!\" &_
strComputer & "\root\default:StdRegProv")

sSubKeyName = "SOFTWARE\ALWIL Software\Avast\4.0" ' ou ce trouve la clef

strValueName = "Avast4ProgramFolder" ' la clef que je cherche

toto=oReg.GetExpandedStringValue _(HKEY_LOCAL_MACHINE,sSubKeyName,strValueName,uValue)' je la trouve

msgbox "voici le resultat: " & uValue & "" 'et je la montre
msgbox " si elle existe toto=0" & toto

--------------------

voila .....
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
49
Date d'inscription
vendredi 22 octobre 2004
Statut
Membre
Dernière intervention
12 juin 2008

Salut

Si tu es en .NET

Dim Racine As RegistryKey = Registry.LocalMachine
Dim cle As RegistryKey = Racine.OpenSubKey("\SOFTWARE\ALWIL Software\Avast\4.0")
Dim valeur As String = cle.GetValue("Avast4ProgramFolder")

Normalement, la variable "valeur" contient la valeur inscrite dans le registre
T'as plus qu'à la tester.
Messages postés
32
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
14 février 2016
1
comment ca, en .net ? qu'est-ce ? comment y passer ?


car, là, je met ce code dans le form load... et tout est en rouge...
Messages postés
262
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
27 avril 2007
1
Et voila, si tu avais précisé avec quoi tu développe, tu n'aurais pas ce type de réponse.
Tu es censé décrire un minimum ton environnement (VB6, SQL, Tartempion)

D'autre part, tu as plein de codes exemple sur ce site.

Rappel du règlement : consulter les sujets équivalants sur le site avant de faire un post;

Cordialement,

Alain 31
Messages postés
32
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
14 février 2016
1
je developpe avec VB6, excuse moi de ne pas avoir précisé..., j'ai oublié dans ce post...
Messages postés
32
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
14 février 2016
1
j'ai deja consulté les reponses des forums, mais rien n'etait convaincant...
c'est pour cela que j'ouvre un nouveau post, je ne vais pas m'amuser à en ouvrir un nouveau alors que la réponse est sous mes yeux ...
Messages postés
23
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
13 décembre 2010

et oui encore la classe WMI ....

la methode StdRegProv

voici un exemple :

const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set oReg=GetObject( _
"winmgmts:{impersonationLevel=impersonate}!\" &_
strComputer & "\root\default:StdRegProv")
strKeyPath = "Console"
strValueName = "HistoryBufferSize"
oReg.GetDWORDValue _
HKEY_CURRENT_USER,strKeyPath,strValueName,dwValue
WScript.Echo "Current History Buffer Size: " & dwValue

je te laisse chercher pour ta clef ,je sui sur que tu peut le faire tout seul..
ce n est pas te rendre service de "macher le travail"....

la fonction que tu doit utiliser est GetQWORDValue
et la clef pour le registre est 0x80000002

voila pour toute les autre interogation :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/getqwordvalue_method_in_class_stdregprov.asp
Messages postés
32
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
14 février 2016
1
je suis désolé, je ne comprend pas...

je n'y arrive pas...

voila ce que j'ai fait :

Private Sub Form_Load()
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Console"
strValueName = "HistoryBufferSize"
oReg.GetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValueName, dwValue
MsgBox "Current History Buffer Size: " & dwValue
End Sub

mais voila, ca ne ressemble à rien, il ne me met rien dans mon msgbox!...
Messages postés
49
Date d'inscription
vendredi 22 octobre 2004
Statut
Membre
Dernière intervention
12 juin 2008

Tu utilises les mêmes valeurs que Herault. Il t'a bien dit de chercher pour ta clé. Lui il est en HKEY_CURRENT_USER et toi tu veux HKEY_LOCAL_MACHINE, tu n'as donc pas à mettre la même chose que lui. Pareil pour les valeurs, tu recherches quoi ? "Console" ?

Herault t'a dit :
"voila pour toute les autre interogation :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/getqwordvalue_method_in_class_stdregprov.asp"


Cherches un peu sur bon sang, ou alors dis nous de faire toute l'application pour toi.
Messages postés
32
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
14 février 2016
1
mouai, ca sera pas mal peut etre comme ca!
Messages postés
32
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
14 février 2016
1
je tiens à vous rapeller que je suis en VB 6... et que j'ai essayé deja ce que vous m'avez donné... mais la moitié est en rouge!

ils proposent ca :
uint32 GetQWORDValue(
uint32hDefKey= 2147483650,
string sSubKeyName ,
stringsValueName,
uint64uValue
);

mais meme en modifiant un peu comme il faudrait, comment voulez vous que ca fonctionne :

uint32 GetQWORDValue(
uint32hDefKey = 0x80000002,
stringsSubKeyName,
stringsValueName,
uint64uValue
);

.........
Messages postés
32
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
14 février 2016
1
et bien, c'est super, je suis désolé d'avoir demandé comme ceci un script tou fait... mais c'est super ca marche, mis a part que mon vb accepte pas les _ pour sauter une ligne, donc je les enleves et ca marche nickel,

Encore merci à tous!

NM