VB中获取EXE文件的版本号

Type FileInfo
   wLength            As Integer
   wValueLength       As Integer
   szKey              As String * 16
   dwSignature        As Long
   dwStrucVersion     As Long
   dwFileVersionMS    As Long
   dwFileVersionLS    As Long
End Type

' NOTE: The following Declare statements are case sensitive.

Declare Function GetFileVersionInfo& Lib "Version" _
     Alias "GetFileVersionInfoA" (ByVal FileName$, _
     ByVal dwHandle&, ByVal cbBuff&, ByVal lpvData$)
Declare Function GetFileVersionInfoSize& Lib "Version" Alias _
     "GetFileVersionInfoSizeA" (ByVal FileName$, dwHandle&)
Declare Sub hmemcpy Lib "Kernel32" Alias "RtlMoveMemory" _
     (hpvDest As Any, hpvSource As Any, ByVal cbBytes&)

Function LOWORD(x As Long) As Integer
   LOWORD = x And &HFFFF&
   ' Low 16 bits contain Minor revision number.
End Function

Function HIWORD(x As Long) As Integer
   HIWORD = x / &HFFFF&
   ' High 16 bits contain Major revision number.
End Function

'----------------------------------------
'以下为执行模块,在 VBE 界面按 F5 执行
'----------------------------------------
Function displayVersion()

    Dim x As FileInfo
    Dim FileVer As String
    Dim FileName As String
    Dim dwHandle&, BufSize&, lpvData$, R&
   
    '*** Get Version Information If Available ****
    FileVer = ""
    'FileName = 路徑
    FileName = Environ("windir") & "/system32/msjet40.dll"
   
    BufSize& = GetFileVersionInfoSize(FileName, dwHandle&)
    If BufSize& = 0 Then
       MsgBox "Invalid File Name or no Version information available"
       Exit Function
    End If
    lpvData$ = Space$(BufSize&)
    R& = GetFileVersionInfo(FileName, dwHandle&, BufSize&, lpvData$)
    hmemcpy x, ByVal lpvData$, Len(x)
   
    '**** Parse File Version Number ****
    FileVer = Trim$(Str$(HIWORD(x.dwFileVersionMS))) + "."
    FileVer = FileVer + Trim$(Str$(LOWORD(x.dwFileVersionMS))) + "."
    FileVer = FileVer + Trim$(Str$(HIWORD(x.dwFileVersionLS))) + "."
    FileVer = FileVer + Trim$(Str$(LOWORD(x.dwFileVersionLS)))
   
    MsgBox FileVer, 64, "Version of " & FileName
End Function

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值