不使用API获取文件版本号

'获取EXE,DLL,OCX文件版本号
Public Function GetFileVer(paFile As String) As String
    Dim R() As Byte, FLen As Long, FileVer As String
    Dim RSeek As Long, StructSign As String
    Dim V1 As Integer, V2 As Integer, V3 As Integer, V4 As Integer
    
    If Dir(paFile) = "" Then GetFileVer = "": Exit Sub
    StructSign = ChrB(&HBD) & ChrB(&H4) & ChrB(&HEF) & ChrB(&HFE)
    Open paFile For Binary As #1
    FLen = LOF(1) - 1
    ReDim R(FLen) As Byte
    Get #1, , R
    RSeek = InStrB(R, StructSign)
    If RSeek = 0 Then
        FileVer = ""
    Else
        Get #1, RSeek + 4 + 4, V2 '跳过StructSign=4,StructVersion=4
        Get #1, , V1: Get #1, , V4: Get #1, , V3
        FileVer = V1 & "." & V2 & "." & V3 & "." & V4
    End If
    Close #1
    GetFileVer = FileVer
End Function

你可能感兴趣的:(VB)