users_user-20.html -  [VB] Récupérer la version d'un exécutable, d'une dll, d'un ocx ...
  1. Private Declare Function GetFileVersionInfo Lib "Version.dll" Alias "GetFileVersionInfoA" (ByVal lptstrFilename As String, ByVal dwhandle As Long, ByVal dwlen As Long, lpData As Any) As Long 
  2. Private Declare Function GetFileVersionInfoSize Lib "Version.dll" Alias "GetFileVersionInfoSizeA" (ByVal lptstrFilename As String, lpdwHandle As Long) As Long 
  3. Private Declare Function VerQueryValue Lib "Version.dll" Alias "VerQueryValueA" (pBlock As Any, ByVal lpSubBlock As String, lplpBuffer As Any, puLen As Long) As Long 
  4. Private Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As Any, ByVal Source As Long, ByVal length As Long
  5. Private Type VS_FIXEDFILEINFO 
  6.    dwSignature As Long 
  7.    dwStrucVersionl As Integer     ' e.g. = &h0000 = 0 
  8.    dwStrucVersionh As Integer     ' e.g. = &h0042 = .42 
  9.    dwFileVersionMSl As Integer    ' e.g. = &h0003 = 3 
  10.    dwFileVersionMSh As Integer    ' e.g. = &h0075 = .75 
  11.    dwFileVersionLSl As Integer    ' e.g. = &h0000 = 0 
  12.    dwFileVersionLSh As Integer    ' e.g. = &h0031 = .31 
  13.    dwProductVersionMSl As Integer ' e.g. = &h0003 = 3 
  14.    dwProductVersionMSh As Integer ' e.g. = &h0010 = .1 
  15.    dwProductVersionLSl As Integer ' e.g. = &h0000 = 0 
  16.    dwProductVersionLSh As Integer ' e.g. = &h0031 = .31 
  17.    dwFileFlagsMask As Long        ' = &h3F for version "0.42" 
  18.    dwFileFlags As Long            ' e.g. VFF_DEBUG Or VFF_PRERELEASE 
  19.    dwFileOS As Long               ' e.g. VOS_DOS_WINDOWS16 
  20.    dwFileType As Long             ' e.g. VFT_DRIVER 
  21.    dwFileSubtype As Long          ' e.g. VFT2_DRV_KEYBOARD 
  22.    dwFileDateMS As Long           ' e.g. 0 
  23.    dwFileDateLS As Long           ' e.g. 0 
  24. End Type 
  25. Private Function GetFileVersion(ByVal sPath As String) As String 
  26. Dim rc As Long 
  27. Dim lDummy As Long 
  28. Dim sBuffer() As Byte 
  29. Dim lBufferLen As Long 
  30. Dim lVerPointer As Long 
  31. Dim udtVerBuffer As VS_FIXEDFILEINFO 
  32. Dim lVerbufferLen As Long 
  33.    On Error GoTo GetFileVersion_Error 
  34.    '*** Get size **** 
  35.    lBufferLen = GetFileVersionInfoSize(sPath, lDummy) 
  36.    If lBufferLen < 1 Then 
  37.       GetFileVersion = "" 
  38.       Exit Function 
  39.    End If 
  40.     
  41.    '**** Store info to udtVerBuffer struct **** 
  42.    ReDim sBuffer(lBufferLen) 
  43.    rc = GetFileVersionInfo(sPath, 0&, lBufferLen, sBuffer(0)) 
  44.    rc = VerQueryValue(sBuffer(0), "\", lVerPointer, lVerbufferLen) 
  45.    MoveMemory udtVerBuffer, lVerPointer, Len(udtVerBuffer) 
  46.     
  47.    GetFileVersion = Format$(udtVerBuffer.dwFileVersionMSh) & "." & Format$(udtVerBuffer.dwFileVersionMSl) & "." & Format$(udtVerBuffer.dwFileVersionLSh) & "." & Format$(udtVerBuffer.dwFileVersionLSl) 
  48.    On Error GoTo 0 
  49.    Exit Function 
  50. GetFileVersion_Error: 
  51.     GetFileVersion = "" 
  52. End Function
Poster un commentaire
Utilisateur
Mot de passe
 
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?