Deklaration: 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 Beschreibung: Parameter:
Rückgabewert: Beispiel: 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 Long, _ puLen As Long) As Long Private Declare Function lstrcpy Lib "kernel32.dll" _ Alias "lstrcpyA" ( _ ByVal lpString1 As Any, _ ByVal lpString2 As Any) As Long Private Declare Sub MoveMemory Lib "kernel32" _ Alias "RtlMoveMemory" ( _ dest As Any, _ ByVal Source As Long, _ ByVal length As Long) 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 Public Type FileVInfo FileName As String FileType As String FileVersion As String FilePath As String End Type Private Const VFT_APP = &H1 Private Const VFT_DLL = &H2 Private Const VFT_DRV = &H3 Private Const VFT_VXD = &H5 Private Const VFT_FONT = &H4& Private Const VFT_STATIC_LIB = &H7& Private Const VFT_UNKNOWN = &H0& ' VersionsInformationen auslesen Public Function GetFileVersionInformation(ByVal _ FilePath As String) As FileVInfo Dim PufferLänge As Long Dim Puffer() As Byte Dim Pointer As Long Dim PointerLänge As Long Dim VInfo As VS_FIXEDFILEINFO ' Püfferlänge ermitteln PufferLänge = GetFileVersionInfoSize(FilePath, 0&) ' Keine Versions-Info? If PufferLänge < 1 Then GoTo Go_Out ' Puffer größe ändern ReDim Puffer(PufferLänge) ' Versions-Info ermitteln GetFileVersionInfo FilePath, 0&, PufferLänge, Puffer(0) ' Pointer VersionsInfo VerQueryValue Puffer(0), "\", Pointer, PointerLänge ' VersionsInfo in Struktur VInfo kopieren MoveMemory VInfo, Pointer, Len(VInfo) Go_Out: ' Struktur füllen With GetFileVersionInformation .FilePath = FilePath .FileName = Right$(FilePath, Len(FilePath) - _ InStrRev(FilePath, "\")) Select Case VInfo.dwFileType Case VFT_APP .FileType = "Anwendung" Case VFT_DLL .FileType = "Dynamic Link Library (DLL)" Case VFT_DRV .FileType = "Geräte Trieber" Case VFT_VXD .FileType = "Virtueller Geräte Treiber" Case VFT_FONT .FileType = "Schriftart" Case VFT_STATIC_LIB .FileType = "Static Library" Case VFT_UNKNOWN .FileType = "Unbekannt" End Select .FileVersion = Format$(VInfo.dwFileVersionMSh) & "." & _ Format$(VInfo.dwFileVersionMSl) & "." & _ Format$(VInfo.dwFileVersionLSh) & "." & _ Format$(VInfo.dwFileVersionLSl) End With End Function Starten Sie ein neues Projekt und fügen Sie das MS-CommonDialog Steuerelement hinzu. Plazieren Sie auf der Form ein CommonDialg-Element, ein Command-Button, sowie vier Bezeichner-Elemente (Label1 - Label4). Private Sub Command1_Click() Dim FVI As FileVInfo On Error GoTo Err_Cancel With CommonDialog1 ' Common Dialog konfigurieren .Flags = cdlOFNFileMustExist .CancelError = True .DefaultExt = App.Path .DialogTitle = "Datei Öffnen" .Filter = "*.exe - Anwendungen|*.exe|" + _ "*.dll - Dynamic Link Library|*.dll|" + _ "*.drv - Geräte Treiber|*.drv|" + _ "*.vxd - Virtueller Geräte Treiber|*.vxd|" + _ "*.* - Alle Dateien|*.*" .ShowOpen ' Datei-Informationen ermitteln FVI = GetFileVersionInformation(.FileName) End With ' Label-Felder mit Informationen füllen With FVI Label1.Caption = "Datei Name: " & .FileName Label2.Caption = "Datei Pfad: " & .FilePath Label3.Caption = "Datei Typ: " & .FileType Label4.Caption = "Datei Version: " & .FileVersion End With Exit Sub Err_Cancel: End Sub Diese Seite wurde bereits 15.010 mal aufgerufen. |
TOP! Unser Nr. 1 Neu! sevDataGrid 3.0 Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Buchempfehlung Tipp des Monats Oktober 2024 Heinz Prelle Firewall-Status unter WinXP/Vista prüfen Das Beispiel prüft, ob die Firewall unter Windows XP/Vista eingeschaltet ist oder nicht. Zudem wird eine Abfrage durchgeführt ob es sich bei dem zugrundeliegenden Betriebssystem um Windows XP/Vista handelt oder nicht. Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |