[API] Récupérer le N° de version d'une DLL

Récupérer le N° de version d'une DLL [API] - Programmation

Marsh Posté le 29-07-2002 à 13:05:13    

Voilà c'est quelle API qu'il faut utiliser pour récupérer le N° de version d'une DLL ?

Reply

Marsh Posté le 29-07-2002 à 13:05:13   

Reply

Marsh Posté le 29-07-2002 à 14:33:14    

Reply

Marsh Posté le 29-07-2002 à 14:34:05    

je vais voir ça merci

Reply

Marsh Posté le 29-07-2002 à 14:35:13    

Reply

Marsh Posté le 29-07-2002 à 14:36:34    

merci, c'est nickel

Reply

Marsh Posté le 29-07-2002 à 14:44:23    

:jap:


---------------
Super.
Reply

Marsh Posté le 29-07-2002 à 15:15:31    

parcontre j'arrive pas à utiliser VerQueryValue en VB car il faut absolument lui passer un poiteur vers une structure VS_FIXEDFILEINFO  et je vois pas comment passer une pointeur en VB...
 
Un peu d'aide ?

Reply

Marsh Posté le 29-07-2002 à 15:41:53    

Voilà le code VB :
 

Code :
  1. Usage
  2. x = GetVersionInfo("c:\program files\microsoft office\office\MSO9.DLL" )Code
  3. Private Type VS_FIXEDFILEINFO
  4.     dwSignature As Long
  5.     dwStrucVersion As Long
  6.     dwFileVersionMSl As Integer
  7.     dwFileVersionMSh As Integer
  8.     dwFileVersionLSl As Integer
  9.     dwFileVersionLSh As Integer
  10.     dwProductVersionMSl As Integer
  11.     dwProductVersionMSh As Integer
  12.     dwProductVersionLSl As Integer
  13.     dwProductVersionLSh As Integer
  14.     dwFileFlagsMask As Long
  15.     dwFileFlags As Long
  16.     dwFileOS As Long
  17.     dwFileType As Long
  18.     dwFileSubtype As Long
  19.     dwFileDateMS As Long
  20.     dwFileDateLS As Long
  21. End Type
  22. Private Declare Function GetFileVersionInfo _
  23.     Lib "Version.dll" Alias _
  24.     "GetFileVersionInfoA" (ByVal lptstrFilename _
  25.     As String, ByVal dwHandle As Long, ByVal _
  26.     dwLen As Long, lpData As Any) As Long
  27. Private Declare Function _
  28.     GetFileVersionInfoSize Lib "Version.dll" _
  29.     Alias "GetFileVersionInfoSizeA" (ByVal _
  30.     lptstrFilename As String, lpdwHandle As _
  31.     Long) As Long
  32. Private Declare Sub CopyMemory Lib "kernel32" _
  33.     Alias "RtlMoveMemory" (dest As Any, src As _
  34.     Long, ByVal length As Long)
  35. Private Declare Function VerQueryValue Lib _
  36.     "Version.dll" Alias "VerQueryValueA" _
  37.     (pBlock As Any, ByVal lpSubBlock As String, _
  38.     lplpBuffer As Any, puLen As Long) As Long
  39. Public Function GetVersionInfo(ByVal sFile As _
  40.     String) As String
  41.     Dim lDummy As Long
  42.     Dim sBuffer() As Byte
  43.     Dim lBufferLen As Long, lVerPointer As Long
  44.     Dim lVerBufferLen As Long
  45.     Dim udtVerBuffer As VS_FIXEDFILEINFO
  46.    
  47.     'Default return value
  48.     GetVersionInfo = "N/A"
  49.    
  50.     'Attempt to retrieve version resource
  51.     lBufferLen = GetFileVersionInfoSize(sFile, _
  52.     lDummy)
  53.    
  54.     If lBufferLen > 0 Then
  55.        
  56.         ReDim sBuffer(lBufferLen)
  57.        
  58.         If GetFileVersionInfo(sFile, 0&, _
  59.             lBufferLen, sBuffer(0)) <> 0 Then
  60.            
  61.             If VerQueryValue(sBuffer(0), _
  62.                 "\", lVerPointer, lVerBufferLen) _
  63.                 <> 0 Then
  64.        
  65.                 CopyMemory udtVerBuffer, ByVal _
  66.                     lVerPointer, Len(udtVerBuffer)
  67.                    
  68.                 With udtVerBuffer
  69.                     GetVersionInfo = _
  70.                         .dwFileVersionMSh & "." & _
  71.                         .dwFileVersionMSl & "." & _
  72.                         .dwFileVersionLSh & "." & _
  73.                         .dwFileVersionLSl
  74.                 End With
  75.        
  76.             End If
  77.         End If
  78.     End If
  79. End Function

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed