Version d'IE avec VB6

Résolu
Thanos_the_yopper Messages postés 309 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 5 mars 2009 - 10 juin 2004 à 17:41
Thanos_the_yopper Messages postés 309 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 5 mars 2009 - 22 juil. 2004 à 09:48
j'aurias voulu savoir comment récupérer la version d'internet explorer installé sur le post via VB6
merci d'avance ^__^

Final Fantasy Memories Venez découvrir les origines d'une saga

11 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
10 juin 2004 à 21:04
Salut,
Le problème avec la lecture de la registry c que c pas si fiable que ça pour les versions de logiciels et que le chemin est des fois différent suivant l'OS.

J'utilise un module (pardon pour l'auteur, je ne me souviens plus où) qui fonctionne pour les versions 95, 98, 2000, XP et peut-être d'autres ?

Avant le code, petite explik. Pour une utilisation juste basique, tu peux appeler uniquement la fonction GetIEVersionString ds le genre label1=GetIEVersionString, dans ce cas, tu peux supprimer les functions inutiles : GetIEVersionFriendlyName et GetIEVersion, si tu ne veux pas non plus la release, tu peux aussi supprimer :
& "." & DVI.dwBuildNumber dans GetIEVersionString.

Si tu veux vraiment tout, alors tu appelles la function GetIEVersionFriendlyName. Si ça t'affiche quelque comme : "Internet Explorer 6 (unknown), c à toi d'ajouter un case ds les "Select Case DVI.dwBuildNumber".

J'espère que je suis assez clair, voilà le code à mettre ds un module :

Private Type DllVersionInfo
cbSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
End Type

Private DVI As DllVersionInfo

Private Declare Function DllGetVersion _
Lib "Shlwapi.dll" _
( _
dwVersion As DllVersionInfo _
) As Long

Public Function GetIEVersionFriendlyName() As String

Dim s As String
Dim DVI As DllVersionInfo

GetIEVersion DVI

Select Case DVI.dwMajorVersion
Case 4

Select Case DVI.dwMinorVersion
Case 70
Select Case DVI.dwBuildNumber
Case 1155: s = "3.0"
Case 1158: s = "3.0 (OSR2)"
Case 1215: s = "3.01"
Case 1300: s = "3.02 and 3.02a"
Case Else: s = "3 (Unknown)"
End Select
Case 71
Select Case DVI.dwBuildNumber
Case 1008: s = "4.0 PP2"
Case 1712: s = "4.0"
Case Else: s = "4.0 (Unknown)"
End Select
Case 72
Select Case DVI.dwBuildNumber
Case 2106: s = "4.01"
Case 3110: s = "4.01 Service Pack 1"
Case 3612: s = "4.01 SP2"
Case 3711: s = "4.x with Update"
Case Else: s = "4.0 (Unknown)"
End Select
Case Else: s = "(Unknown)"
End Select

Case 5

Select Case DVI.dwMinorVersion
Case 0
Select Case DVI.dwBuildNumber
Case 518: s = "5 Developer Preview (Beta 1)"
Case 910: s = "5 Beta (Beta 2)"
Case 2014: s = "5"
Case 2314: s = "5 (Office 2000)"
Case 2516: s = "5.01 (Windows 2000 Beta 3)"
Case 2614: s = "5 (Windows 98 Second Edition)"
Case 2717, 2721, 2723: s = "5 with update"
Case 2919: s = "5.01 (Windows 2000 RC1&2/Office 2000 SR-1/Update)"
Case 2920: s = "5.01 (Windows 2000)"
Case 3103: s = "5.01 SP1 (Windows 2000)"
Case 3105: s = "5.01 SP1 (Windows 95/98 and Windows NT 4.0)"
Case 3314: s = "5.01 SP2 (Windows 95/98 and Windows NT 4.0)"
Case 3315: s = "5.01 SP2 (Windows 2000)"
Case Else: s = "5 (Unknown)"
End Select

Case 50

Select Case DVI.dwBuildNumber
Case 3825: s = "5.5 Developer Preview (Beta)"
Case 4030: s = "5.5 & Internet Tools Beta"
Case 4134: s = "5.5"
Case 4308: s = "5.5 Advanced Security Privacy Beta"
Case 4522: s = "5.5 Service Pack 1"
Case 4807: s = "5.5 Service Pack 2"
Case Else: s = "5.5 (Unknown)"
End Select

Case Else: s = GetIEVersionString()
End Select

Case 6
Select Case DVI.dwMinorVersion
Case 0

Select Case DVI.dwBuildNumber
Case 2462: s = "6 global Preview (Beta)"
Case 2479: s = "6 global Preview (Beta) Refresh"
Case 2600: s = "6"
Case 2800: s = "6 Service Pack 1"
Case Else: s = "6 (Unknown)"
End Select

Case Else: s = GetIEVersionString()
End Select
Case Else: s = GetIEVersionString()
End Select

GetIEVersionFriendlyName = "Internet Explorer " & s

End Function

Private Function GetIEVersion(DVI As DllVersionInfo) As Long

DVI.cbSize = Len(DVI)
DllGetVersion DVI
GetIEVersion = DVI.dwMajorVersion

End Function

Function GetIEVersionString() As String
Dim DVI As DllVersionInfo

DVI.cbSize = Len(DVI)
DllGetVersion DVI

GetIEVersionString = "Internet Explorer " & _
DVI.dwMajorVersion & "." & _
DVI.dwMinorVersion & "." & _
DVI.dwBuildNumber

End Function

Bonne prog

Cordialement

CanisLupus
3
Neo.balastik Messages postés 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
10 juin 2004 à 18:41
Salut ;O)

Ilsuffit de la clé de registre suivante :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Version

Le code pour lire une clé (à copier dans un module) :

Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" 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 Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

Private Const REG_SZ = 1 ' Unicode nul terminated string
Private Const REG_BINARY = 3 ' Free form binary
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_CLASSES_ROOT = &H80000000

Public Function GetRegString(hKey As Long, strPath As String, strValue As String)
Dim Ret
'Open the key
RegOpenKey hKey, strPath, Ret
'Get the key's content
GetRegString = RegQueryStringValue(Ret, strValue)
'Close the key
RegCloseKey Ret
End Function

'____ FIN DU MODULE_____

'La façon de procéder :

Msgbox "La version d'Internet Explorer est : " & GetRegString(HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\Internet Explorer","Version")

Guy
0
Thanos_the_yopper Messages postés 309 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 5 mars 2009
11 juin 2004 à 09:49
oula, c'est super complet ca !!! merci bien
en fait, pour le cas présent, j'aurais pas besoin de toute ça, je veux juste savoir si je suis au moins dans une version 5 ou plus, mais ça pourra toujours servire plus tard ! donc, merci bien :D

Final Fantasy Memories Venez découvrir les origines d'une saga
0
Thanos_the_yopper Messages postés 309 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 5 mars 2009
19 juil. 2004 à 15:47
bon, vous allez surement beaucoup rire mais ....

humm ...

*n'ose pas demander*

....

*se lance parce que bon, c'est pour le boulot, donc faut bien*
et avec IE2, ça marche aussi ?

*part en courant en se protégeant la tete des pierres qu'on pourrait lui lancer*

Final Fantasy Memories Venez découvrir les origines d'une saga
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
19 juil. 2004 à 19:19
Salut,

Non, je ne te jetterai pas de pierres.
Je ne rirai pas non plus car IE 2.0 existe bel et bien ou a existé, suffit de taper IE 2.0 dans google pour le savoir.
Est-ce que mon bout de source le détecte ? Pourquoi pas ? Tu as remarqué les Case Else: s = GetIEVersionString() ? ben c fait pour détecter des versions qui ne sont pas dans la liste.
Donc si les machines sur lesquelles IE 2.0 est installé comprennent les APIs du source, je dirai oui, ça devrait marcher.

Cordialement

CanisLupus
0
Thanos_the_yopper Messages postés 309 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 5 mars 2009
20 juil. 2004 à 09:37
en fait, sur la machine ou je l'ai testé (a savoir NT4 avec IE2), la dll Shlwapi.dll n'est pas installée ... et si on install un IE3 par dessus, cette dll est installée aussi, mais elle en contient pas les API necessaire pour récupérer la version, enfin, pas a ce qu'il m'a semblé, le bout de code plante :/

Final Fantasy Memories Venez découvrir les origines d'une saga
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
20 juil. 2004 à 19:15
En fait,Shlwapi.dll ne contient pas d'API.
La fonction DllGetVersion récupère seulement des infos sur la version des DLL, on peut l'appliquer à d'autre DLL. Voir :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/dllgetversion.asp

D'après Microsoft, pour NT4 ça ne fonctionne qu'avec Windows Internet Explorer 4.0. Je n'avais pas testé avec cet OS.

Tout ce que je peux garantir c que ça marche avec 98, 2000, et XP.

Donc, il faut encore améliorer le source pour qu'il soit plus exhaustif.

Cordialement

CanisLupus
0
sarl_adc Messages postés 141 Date d'inscription lundi 3 novembre 2003 Statut Membre Dernière intervention 20 octobre 2005
21 juil. 2004 à 15:53
Hmmm... C'est normal qu'il n'y ait rien dans ce sujet ? Pas de texte visible, que des messages vides...

Enfin si quelqu'un a une soluce pour la version d'IE je suis intéressé ;-)

Pour l'instant, je cherche le fichier IEXPLORE.EXE via une API qui me donne le répertoire "Program Files" et une DLL qui me cherche le fichier.
Puis je cherche son n° de version.

Mais j'aimerais trouver + simple et + sûr s'il existe.

Merci pour votre aide :)
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
21 juil. 2004 à 18:35
Bizarre sarl_adc, car g mis un peu plus haut un code pour récupérer la version d'IE.
Ptete pas très simple mais (assez) sûre. En tous cas, pour moi elle suffit et me donne toujours des résultats justes.
Remarque, tu peux le simplifier facilement.

il y a même une autre méthode donnée par Neo.balastik : lecture ds la registry.

Cordialement

CanisLupus
0
sarl_adc Messages postés 141 Date d'inscription lundi 3 novembre 2003 Statut Membre Dernière intervention 20 octobre 2005
22 juil. 2004 à 08:34
Hello !

Merci pour la réponse.
Alors bizarrement les messages vides d'hier sont plein maintenant et je peux lire vos sources...

Apparemment il doit y avoir des pbs sur VbFrance. Le site plante 1 fois sur 3 chez moi...

Merci :)
0
Thanos_the_yopper Messages postés 309 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 5 mars 2009
22 juil. 2004 à 09:48
oui, en ce moment, y'a pas mal de probleme sur les sites CodeS-SourceS :/ mais ça a l'air d'etre rentré dans l'ordre :)

Final Fantasy Memories Venez découvrir les origines d'une saga
0
Rejoignez-nous