Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2381 connectés 

 


Dernière réponse
Sujet : [API] Récupérer le N° de version d'une DLL
Kyle_Katarn 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


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Kyle_Katarn 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

Kyle_Katarn 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 ?
godbout :jap:
Kyle_Katarn merci, c'est nickel
godbout http://forum.hardware.fr/forum2.ph [...] h=&subcat=
Kyle_Katarn je vais voir ça merci
Carbon_14 Peut-être http://codeguru.earthweb.com/dll/dll_version.shtml ?
Kyle_Katarn Voilà c'est quelle API qu'il faut utiliser pour récupérer le N° de version d'une DLL ?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)