Eigenschaften einer .exe-Datei bekommen

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von ~blaze~.

    Eigenschaften einer .exe-Datei bekommen

    Hallo,

    ich suche eine Möglichkeit, wie man die Eigenschaften einer .exe-Datei bekommt, wenn man vorher eine per OpenFileDialog ausgewählt hat.
    (Siehe Screenshot)

    Danke im Voraus :)
    Bilder
    • evffderf deefv.png

      24,62 kB, 295×296, 189 mal angesehen
    Hi
    schau' dir mal System.Reflection.Assembly.ReflectionOnlyLoadFrom(<pfad>) an. Alternativ, falls die Sachen genügen, geht auch System.Reflection.AssemblyName.GetAssemblyName(<pfad>). Auf der Assembly sind einige Attribute definiert, die die Assembly beschreiben. Um an die Attribute, wie Produktname, etc., zu kommen, kannst du GetCustomAttributes verwenden.

    Gruß
    ~blaze~
    Du kannst es auch mit shell32 probieren.
    Beispiel:
    Spoiler anzeigen

    Verweis auf shell32.dll hinzufügen

    VB.NET-Quellcode

    1. Imports System.Windows.Forms
    2. Imports System
    3. Imports System.IO
    4. Imports Shell32
    5. Public Class eigenschaften
    6. Private sh As New Shell32.Shell
    7. Private fi As Shell32.FolderItem
    8. Private f As Shell32.Folder
    9. Public Resolution As String
    10. Public Function Filedetails(ByVal File As String)
    11. If (System.IO.File.Exists(File)) = True Then
    12. Try
    13. f = sh.NameSpace(System.IO.Path.GetDirectoryName(File))
    14. fi = f.ParseName(System.IO.Path.GetFileName(File))
    15. For i = 0 To 100
    16. Resolution = i & " : " & f.GetDetailsOf(fi, i)
    17. ListBox1.Items.Add(Resolution) 'Es werden dir alle Eigenschaften von 0 - 100 in Listbox angezeigt. Du musst halt schauen was du davon brauchst.
    18. Next i
    19. Catch ex As Exception
    20. MessageBox.Show(ex.Message)
    21. End Try
    22. Else
    23. MessageBox.Show("The file does not exist.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    24. End If
    25. End Function
    26. Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button.Click
    27. Filedetails("Deine_Datei_mit_Pfad") 'Hier musst du in deinem Fall die Antwort von deinem OpenFileDialog rein packen
    28. End Sub
    29. End Class

    Mit freundlichen Grüßen

    Linux

    VB.NET-Quellcode

    1. Dim assembly As Reflection.Assembly = Reflection.Assembly.ReflectionOnlyLoadFrom("fileName")
    2. MessageBox.Show(assembly.GetName().FullName)
    3. For Each attribute As Attribute In DirectCast(assembly.GetCustomAttributes(GetType(Attribute), True), Attribute())
    4. MessageBox.Show(attribute.GetType().FullName)
    5. Next


    Der Wert GetType(Attribute) gibt den Typ zur Attributfilterung an. D.h. wenn du den auf ProductNameAttribute oder wie das heißt setzt und statt zu Attribute() zu ProductNameAttribute() castest und attribute As ProductNameAttribute deklarierst, kannst du auf die gesetzten Werte zugreifen.

    Gruß
    ~blaze~

    ~blaze~ schrieb:

    VB.NET-Quellcode

    1. Dim assembly As Reflection.Assembly = Reflection.Assembly.ReflectionOnlyLoadFrom("fileName")
    2. MessageBox.Show(assembly.GetName().FullName)
    3. For Each attribute As Attribute In DirectCast(assembly.GetCustomAttributes(GetType(Attribute), True), Attribute())
    4. MessageBox.Show(attribute.GetType().FullName)
    5. Next


    Der Wert GetType(Attribute) gibt den Typ zur Attributfilterung an. D.h. wenn du den auf ProductNameAttribute oder wie das heißt setzt und statt zu Attribute() zu ProductNameAttribute() castest und attribute As ProductNameAttribute deklarierst, kannst du auf die gesetzten Werte zugreifen.

    Gruß
    ~blaze~

    Danke. Aber wie binde ich das in diesen Code ein?

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    3. OpenFileDialog1.ShowDialog()
    4. TextBox1.Text = OpenFileDialog1.FileName
    5. End Sub
    6. End Class



    Falls manche nicht wissen, welche Eigenschaften ich meine. Ich meine diese hier (siehe Anhang)
    Bilder
    • tggtrtgtr.png

      66 kB, 375×524, 189 mal angesehen

    n1nja schrieb:

    Eigenschaft ist nur ein Überbegriff. Was willst du genau auslesen?
    Größe, Pfad, Beschreibung etc

    Ich möchte nur, wenn ich auf das Linklabel klicke, dass dieses Fenster erscheint, dass ich im Anhang gehängt hatte haben.
    Wenn das nicht geht, dann möchte ich dass die Größe, Pfad, Beschreibung usw. in der Form stehen sollen, unzwar in einer Richtextbox.

    Danke im Voraus.

    n1nja schrieb:

    Das Fenster ist von Windows so erstellt worden, da musst du wohl oder übel selber was zusammenbasteln.

    Oder du schaust mal im Netz ob es ne API dazu gibt, weiß ich aber nicht.

    Mhh okay...
    Dann will ich gerne, dass die Größe, Pfad, Beschreibung etc in einer Richtextbox ausgegeben werden sollen.