Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Dateieigenschaften auslesen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
robert0815



Anmeldungsdatum: 11.03.2013
Beiträge: 1

BeitragVerfasst am: 11.03.2013, 13:15    Titel: Dateieigenschaften auslesen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9732
Wohnort: Neben der Festplatte

BeitragVerfasst am: 11.03.2013, 13:54    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1855
Wohnort: D59192

BeitragVerfasst am: 11.03.2013, 16:52    Titel: Antworten mit Zitat

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 happy

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz