|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
robert0815
Anmeldungsdatum: 11.03.2013 Beiträge: 1
|
Verfasst am: 11.03.2013, 13:15 Titel: Dateieigenschaften auslesen |
|
|
Hallo Leute,
ich möchte über FB gerne die Eigenschaften einer Datei (exe und msi) auslesen.
Mit Eigenschaften meine ich: Klickt man im Windows-Explorer eine exe|msi mit der rechten Maustaste an und wählt dann [Eigenschaften], erhält man eine Reihe von Informationen, wie z.B. die Dateiversion. Und genau diese würde ich gerne auslesen können.
Hat von euch jemand ein Tipp für mich parat?
Schönen Dank schon mal. |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 11.03.2013, 13:54 Titel: |
|
|
Die Dateiversion lässt sich mit WinAPI-Bordmitteln auslesen. Dieser VB6-Code sollte sich dazu recht einfach nach FB übersetzen lassen:
http://www.vbarchiv.net/tipps/details.php?id=161
Die ganzen Deklarationen bis zur Zeile "' VersionsInformationen auslesen" sollten sich durch ein einfaches #include "windows.bi" ersetzen lassen. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 11.03.2013, 16:52 Titel: |
|
|
Code: | #Include "windows.bi"
#Define No =0
#Define CrLf Chr(13, 10)
#Define WTitel "Windows - Versionsinfo " + filename
#Define E_ICON MB_OK Or MB_ICONERROR
Dim Anzeige As String*4000
Dim As String filename = "Versionsinfo.exe"'Datei mit VersionsInfo
Dim As Integer dwSize = GetFileVersionInfoSize( filename, NULL )
If dwSize No Then
MessageBox (0, "Fehler, kein Versionsinfo!", WTitel, E_ICON)
End
EndIf
Dim As String Buffer = String(dwSize, 0)
If GetFileVersionInfo( filename, NULL, dwSize, StrPtr(Buffer) ) No Then
MessageBox (0, "Fehler, im Versionsinfo!", WTitel, E_ICON)
End
EndIf
Dim As Short Ptr xpFileInfo
Dim As UInteger LenFileInfo
If VerQueryValue( StrPtr(Buffer),"\\", @xpFileInfo, @LenFileInfo ) No Then
MessageBox (0, "Fehler, im Versionsinfo!", WTitel, E_ICON)
End
EndIf
Anzeige = "FileVersion : " & _
*(xpFileInfo+5) & "." & *(xpFileInfo+4) & "." & _
*(xpFileInfo+7) & "." & *(xpFileInfo+6) & CrLf
Anzeige += "ProductVersion: " & _
*(xpFileInfo+9) & "." & *(xpFileInfo+8) & "." & _
*(xpFileInfo+11) & "." & *(xpFileInfo+10) & CrLf & CrLf
' CodePage und LanguageID auslesen
Dim As Integer Ptr pvInfo
Dim As Integer wInfoLen
VerQueryValue(StrPtr(Buffer),"\\VarFileInfo\\Translation", @pvInfo,@wInfoLen )
Dim As String Lang_String = Hex(*pvInfo And &hffff, 4) + Hex(*pvInfo Shr 16, 4)
Dim As String VerInfo(14) = {"CompanyName","FileDescription", _
"FileVersion","InternalName","LegalCopyright","OriginalFileName", _
"ProductName","ProductVersion","Comments","Language","Email","Website", _
"Special","Schöne Grüße","FreeBASIC"}
Dim As String Buffer2
For i As Integer = 0 To 14
If VerQueryValue(StrPtr(Buffer), _
"\\StringFileInfo\\" + Lang_String + "\\" + VerInfo(i), _
@pvInfo, @wInfoLen) <> 0 Then
Buffer2 = String(wInfoLen, 0)
lstrcpy Buffer2, Cast(LPTSTR,pvInfo)
Anzeige += VerInfo(i) + ": " + Buffer2 + CrLf
End If
Next
MessageBox (0, Anzeige, WTitel, MB_OK)
|
Soweit funktionierte es
EDIT/
neue Version
http://users.freebasic-portal.de/volta/zips/Versionsinfo.rar _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|