Version d'office installé

couze2003 Messages postés 5 Date d'inscription samedi 19 avril 2003 Statut Membre Dernière intervention 18 juillet 2005 - 13 juil. 2005 à 15:02
couze2003 Messages postés 5 Date d'inscription samedi 19 avril 2003 Statut Membre Dernière intervention 18 juillet 2005 - 18 juil. 2005 à 11:59
Bonjour,



Je cherche à connaitre en VB6 la ou les versions d'office installé sur le poste client.



Pouvez-vous me donner une piste.



Merci

2 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
14 juil. 2005 à 13:56
Salut,

Il me semble que j'ai déjà posté une réponse à ce même genre de problème. Comme je n'ai pas retrouvé, c'est loin, voilà :

C'est à base d'api interrogeant la registry, tu colles le code suivant dans un module et pour avoir ton information tu codes TaVar = VersionOffice. La réponse sera un n° (8 pour Office 97, 9 pour Office 2000, 10 pour Office 2002 ou 2003, ... enfin je n'ai pas toutes les correspondances, vérifie).

Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const REG_SZ As Long = 1


Private Declare Function RegOpenKey _
Lib "advapi32" Alias "RegOpenKeyA" _
( _
ByVal hKey As Long, _
ByVal lpSubKey As String, _
phkResult As Long _
) As Long


Private Declare Function RegQueryValueEx _
Lib "advapi32" Alias "RegQueryValueExA" _
( _
ByVal hKey As Long, _
ByVal lpValueName As String, _
ByVal lpReserved As Long, _
lpType As Long, _
lpData As Any, _
lpcbData As Long _
) As Long


Private Function GetString(hKey As Long, strPath As String, strValue As String) As String
Dim Keyhand As Long, lResult As Long
Dim strBuf As String, lDataBufSize As Long
Dim lValueType As Long


'ouverture de la clé
Call RegOpenKey(hKey, strPath, Keyhand)
'lecture du type de valeur
lResult = RegQueryValueEx(Keyhand, strValue, 0&, lValueType, ByVal 0&, lDataBufSize)
'si c'est du string
If lValueType = REG_SZ Then
strBuf = String(lDataBufSize, " ") 'init du buffer
'récup de la valeur
lResult = RegQueryValueEx(Keyhand, strValue, 0&, 0&, ByVal strBuf, lDataBufSize)
If lResult = 0& Then
'on élimine les chars null
GetString = Split(strBuf, Chr(0))(0)
End If
End If

End Function


Public Function VersionOffice() As String
Dim tmp As String


tmp = GetString(HKEY_CLASSES_ROOT, "Office.Binder" & "\CurVer", "")
VersionOffice = Mid(tmp, InStrRev(tmp, ".") + 1)

End Function



-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
couze2003 Messages postés 5 Date d'inscription samedi 19 avril 2003 Statut Membre Dernière intervention 18 juillet 2005
18 juil. 2005 à 11:59
Merci beaucoup de ta réponse.
Je teste cela de suite.
0