Trucos Determinar la version de un exe, dll, etc.

Para conocer la versión de un archivo puedes hacer :

Private Type VS_FIXEDFILEINFO
    dwSignature As Long
    dwStrucVersionl As Integer
    dwStrucVersionh As Integer
    dwFileVersionMSl As Integer
    dwFileVersionMSh As Integer
    dwFileVersionLSl As Integer
    dwFileVersionLSh As Integer
    dwProductVersionMSl As Integer
    dwProductVersionMSh As Integer
    dwProductVersionLSl As Integer
    dwProductVersionLSh As Integer
    dwFileFlagsMask As Long
    dwFileFlags As Long
    dwFileOS As Long
    dwFileType As Long
    dwFileSubtype As Long
    dwFileDateMS As Long
    dwFileDateLS As Long
End Type
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
Private Declare Function GetFileVersionInfoSize Lib "Version.dll" Alias
"GetFileVersionInfoSizeA" (ByVal lptstrFilename As String, lpdwHandle As Long) As Long
Private Declare Function VerQueryValue Lib "Version.dll" Alias
"VerQueryValueA" (pBlock As Any, ByVal lpSubBlock As String, lplpBuffer As Any, puLen As Long) As Long
Private Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As Any, ByVal Source As Long, ByVal length As Long)

Function VerVersion(Fichero As String) As String
Dim lBufferLen As Long, udtVerBuffer As VS_FIXEDFILEINFO
Dim sBuffer() As Byte, rc As Long, lAux As Long
Dim lVerPointer As Long, lVerbufferLen As Long

VerVersion = ""
'obtenemos el tamaño de la información de versión
lBufferLen = GetFileVersionInfoSize(Fichero, lAux)
'el fichero no contiene información de versión
If lBufferLen < 1 Then Exit Function
'guardamos la información en la estructura udtVerBuffer
ReDim sBuffer(lBufferLen)
rc = GetFileVersionInfo(Fichero, 0&, lBufferLen, sBuffer(0))
rc = VerQueryValue(sBuffer(0), "\", lVerPointer, lVerbufferLen)
MoveMemory udtVerBuffer, lVerPointer, Len(udtVerBuffer)
'Formamos la versión del fichero
VerVersion = Format$(udtVerBuffer.dwFileVersionMSh) & "." & Format$(udtVerBuffer.dwFileVersionMSl) & "." &
Format$(udtVerBuffer.dwFileVersionLSh) & "." &
Format$(udtVerBuffer.dwFileVersionLSl)
End Function



Trucos Trucos

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com