Private Const HKEY_CLASSES_ROOT As Long = &H80000000 Private Const KEY_ALL_ACCESS As Long = &H3F Private Const ERROR_SUCCESS As Long = 0& Private Const REG_SZ As Long = 1& Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, 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, ByRef lpType As Long, ByVal szData As String, ByRef lpcbData As Long) As Long ' Function GetMDACVersion(Optional ByRef iMajor As Integer, Optional ByRef iMinor As Integer) As String Dim lRet As Long, lKeyHandle As Long, sBuffer As String, sRet As String GetMDACVersion = "0.00" ' ouvre la clé lRet = RegOpenKeyEx(HKEY_CLASSES_ROOT, "MDACVer.Version\CurVer\", 0&, KEY_ALL_ACCESS, lKeyHandle) If lRet = ERROR_SUCCESS Then ' la clé existe, on cherche la valeur sBuffer = String(256, vbNullChar) lRet = RegQueryValueEx(lKeyHandle, vbNullString, 0&, REG_SZ, sBuffer, Len(sBuffer)) If lRet = ERROR_SUCCESS Then ' pas d'erreur, vérifie la valeur pour ne récupérer que le numérique lRet = InStrB(1, sBuffer, vbNullChar) If lRet > 0 Then sRet = Trim$(LeftB$(sBuffer, lRet)) GetMDACVersion = RightB$(sRet, 8) End If End If ' on ferme la clé Call RegCloseKey(lKeyHandle) End If ' on recoupe la chaine pour séparer Major/Minor iMajor = LeftB(GetMDACVersion, 2) iMinor = RightB(sRet, 4) End Function
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.