OVH Cloud OVH Cloud

Base de registre

3 réponses
Avatar
Jeff
Bonjour à tous,

j'ai fait le petit code suivant, qui me permet de voir les logiciels
installé via la base de registre

Function TestRegister(strPoste ) As String

Const HKEY_LOCAL_MACHINE = &H80000002

Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _
& strPoste & "\root\default:StdRegProv")

strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys

For Each subkey In arrSubKeys
TestRegister = TestRegister & subkey & vbNewLine
End If
Next

End function

Le tout fonctionne très bien, cependant, j'aimerais savoir comment consulter
le numéro de version de ce qu'on y retrouve. Avec cela, je pourrais dire
mission accompli et aller fêter tout cela avec un trio Bic-Mac.

3 réponses

Avatar
Jacques Barathon [MS]
J'utilise parfois un script (assez long) qui liste les applications
enregistrées et leur version lorsque l'info est dispo. Ce script n'est pas
de moi, je l'ai récupéré il y a longtemps sur Internet - l'auteur est
Branimir Petrovic, une recherche devrait te permettre de retrouver ce script
dans son intégralité. En tout cas voici déjà la fonction dans laquelle le
nom et la version d'une application sont récupérés:

-- début --
Private Function getProgNameAndVersion(oReg, HIVE, sKeyRoot)
' If both values "DisplayName" and "DisplayVersion" exist in sKeyRoot,
return:
' "DisplayNameKeyValue --Version: DisplayVersionKeyValue"
'
' If only "DisplayName" exists, return:
' "DisplayNameKeyValue"
'
' Otherwise EMPTY is returned

Dim sKeyValuesAry, iKeyTypesAry, nCnt, sValue, sDisplayName,
sDisplayVersion
oReg.EnumValues HIVE, sKeyRoot, sKeyValuesAry, iKeyTypesAry 'fill the
arrays

' 6 Sept 2002
' SP3 for Win2K altered behavior of registry provider's EnumValues method!
' EnumValues method after SP3 does not return empty array any more for all
' those registry keys that have only empty Default value.
' Therefore sKeyValuesAry must be tested to see if it is an array or not.
If NOT IsArray(sKeyValuesAry) Then
Exit Function ' ' >>>
End If

For nCnt = 0 To UBound(sKeyValuesAry)
If InStr(1, sKeyValuesAry(nCnt), "DisplayName", vbTextCompare) Then
If iKeyTypesAry(nCnt) = REG_SZ Then
oReg.GetStringValue HIVE, sKeyRoot, sKeyValuesAry(nCnt), sValue
If sValue<>"" Then
sDisplayName = sValue
sDisplayName = Replace(sDisplayName, "[", "(")
sDisplayName = Replace(sDisplayName, "]", ")")
End If
End If
ElseIf InStr(1, sKeyValuesAry(nCnt), "DisplayVersion", vbTextCompare)
Then
If iKeyTypesAry(nCnt) = REG_SZ Then
oReg.GetStringValue HIVE, sKeyRoot, sKeyValuesAry(nCnt), sValue
If sValue<>"" Then sDisplayVersion = sValue
End If
End If

If (sDisplayName<>"") AND (sDisplayVersion<>"") Then
getProgNameAndVersion = sDisplayName & " --Version: " & sDisplayVersion
Exit Function ' >>>
End If
Next

If sDisplayName<>"" Then
getProgNameAndVersion = sDisplayName
Exit Function ' >>>
End If
End Function
-- fin --

J'espère que tu auras toujours envie de te taper un Big-Mac après ça!

Jacques
Avatar
Jacques Barathon [MS]
"Jacques Barathon [MS]" wrote in message
news:
J'utilise parfois un script (assez long) qui liste les applications
enregistrées et leur version lorsque l'info est dispo. Ce script n'est pas
de moi, je l'ai récupéré il y a longtemps sur Internet - l'auteur est
Branimir Petrovic, une recherche devrait te permettre de retrouver ce
script dans son intégralité.


Pour info, le script dans son intégralité:
http://www.interclasse.com/scripts/SoftwareMeteringCLS.php

Jacques

Avatar
Jeff
Merci beaucoup pour ton aide, mais avant de l'essayer je vais aller prendre
mon Big Mac

A+

"Jacques Barathon [MS]" wrote:

"Jacques Barathon [MS]" wrote in message
news:
J'utilise parfois un script (assez long) qui liste les applications
enregistrées et leur version lorsque l'info est dispo. Ce script n'est pas
de moi, je l'ai récupéré il y a longtemps sur Internet - l'auteur est
Branimir Petrovic, une recherche devrait te permettre de retrouver ce
script dans son intégralité.


Pour info, le script dans son intégralité:
http://www.interclasse.com/scripts/SoftwareMeteringCLS.php

Jacques