use the GetFileVersionInfoSize, GetFileVersionInfo, and VerQueryValue API functions, seehttp://www.vb-helper.com/howto_file_version_info.html
Option ExplicitPrivate Const SW_SHOW = 5 Private Const SEE_MASK_INVOKEIDLIST = &HC Private Type SHELLEXECUTEINFO cbSize As Long fMask As Long hwnd As Long lpVerb As String lpFile As String lpParameters As String lpDirectory As String nShow As Long hInstApp As Long lpIDList As Long lpClass As String hkeyClass As Long dwHotKey As Long hIcon As Long hProcess As Long End TypePrivate Declare Function ShellExecuteEx Lib "shell32.dll" (ByRef s As SHELLEXECUTEINFO) As LongPrivate Sub DisplayFileProperties(ByVal sFullFileAndPathName As String) Dim shInfo As SHELLEXECUTEINFO With shInfo .cbSize = LenB(shInfo) .lpFile = sFullFileAndPathName .nShow = SW_SHOW .fMask = SEE_MASK_INVOKEIDLIST .lpVerb = "properties" End With ShellExecuteEx shInfo End Sub Private Sub Command1_Click() DisplayFileProperties "C:\CONFIG.SYS" End Sub
Private Const SEE_MASK_INVOKEIDLIST = &HC
Private Type SHELLEXECUTEINFO
cbSize As Long
fMask As Long
hwnd As Long
lpVerb As String
lpFile As String
lpParameters As String
lpDirectory As String
nShow As Long
hInstApp As Long
lpIDList As Long
lpClass As String
hkeyClass As Long
dwHotKey As Long
hIcon As Long
hProcess As Long
End TypePrivate Declare Function ShellExecuteEx Lib "shell32.dll" (ByRef s As SHELLEXECUTEINFO) As LongPrivate Sub DisplayFileProperties(ByVal sFullFileAndPathName As String)
Dim shInfo As SHELLEXECUTEINFO With shInfo
.cbSize = LenB(shInfo)
.lpFile = sFullFileAndPathName
.nShow = SW_SHOW
.fMask = SEE_MASK_INVOKEIDLIST
.lpVerb = "properties"
End With
ShellExecuteEx shInfo
End Sub
Private Sub Command1_Click()
DisplayFileProperties "C:\CONFIG.SYS"
End Sub