Hallo,
mit dem angehängten Script kann ich die Datei-Infos auslesen. (zB. 31: Abmessungen)
Ein Problem bereitet mir die Wandlung vom ersten Array-Eintrag in Integer.
Ich möchte das Verhältnis W/H ausgeben.
Imports System.IO ’ File, Path
Public Class frmInfo
Private Sub Button1_Click _
( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'--------------------------------------------------------------------------------------------------------------------
Dim strProperties As String = GetProperties(„C:…\Bild.jpg“) oder („C:…\Video.wmv“)
Me.Label1.Text = strProperties
End Sub
Private Sub Button2_Click _
( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'--------------------------------------------------------------------------------------------------------------------
Call GetPropertiesAll(„C:…\Bild.jpg“) oder („C:…\Video.wmv“)
End Sub
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Function GetProperties (ByVal strPath As String) As String
'----------------------------------------------------------------------------------------------------------------
Try
If File.Exists(strPath) Then
Dim objShell As Object = CreateObject(„Shell.Application“)
Dim objFolder As Object = objShell.Namespace(Path.GetDirectoryName(strPath))
Dim strWH() As String
Dim dblW, dblH, dblRel As Double
For Each strFileName In objFolder.Items
Select Case IO.Path.GetExtension(strPath).ToLower
Case „.jpg“ ’ -> ist Bild…
strWH = split(objFolder.GetDetailsOf(strFileName, 31), " x ") ’ (Abmessungen) teilen
'???
dblW = Val(strWH(0)) ’ Fehler bei Wandlung zu Double ???
'???
dblH = Val(strWH(1)) ’ OK
dblRel = dblW/dblH ’ Fehler
Return strWH(0) & " - " & strWH(1) & " - " & dblRel.ToString ’ -> Rückgabe falsch
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'Dim FInfo as new FileInfo(strPath)
'Dim Img as Image = Image.FromFile(FInfo.Fullname)
'Dim Breite as Integer = Img.Width
'Dim Hoehe as Integer = Img.Height
'Dim strRatio = CStr(Breite/Hoehe) & „00“
’ Verhältnis W/H (& „00“ -> falls Ergebnis ‚n,10‘
'strRatio = strRatio.Substring(0,InStr(strRatio, „,“) + 3)
’ Verhältnis W/H mit 3 Stellen hinter Komma
'Return Breite & „/“ & Hoehe & „/“ & strRatio
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Case „.wmv“ ’ -> ist Video…
Return objFolder.GetDetailsOf(strFileName, 285).ToString & " - " & _
objFolder.GetDetailsOf(strFileName, 283).ToString & " - " & _
objFolder.GetDetailsOf(strFileName, 27).ToString
’ -> Rückgabe OK -> „W - H - nn:nn:nn“
Case Else
'…
End Select
Next
Return „“
Else
Return „Datei nicht gefunden“
End If
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Information, „Fehler in ‚GetProperties()‘“)
Return „Fehler“
End Try
End Function
Sub GetPropertiesAll (ByVal strPath As String)
'----------------------------------------------------------------------------------------------------------------
Try
Me.Label1.Text = „“: Me.Label1.Update
If File.Exists(strPath) Then
Dim objShell As Object = CreateObject(„Shell.Application“)
Dim objFolder As Object = objShell.Namespace(Path.GetDirectoryName(strPath))
For Each strFileName In objFolder.Items
’ alle Dateien durchlaufen… (hier: nur eine)
For i = 0 to 320 ’ alle Properties durchlaufen…
With lvPS.Items.Insert(i, i) ’ Nr. des Eintrags
.SubItems.Add(objFolder.GetDetailsOf(strPath, i).ToString) ’ Bezeichnung
.SubItems.Add(objFolder.GetDetailsOf(strFileName, i).ToString) ’ Wert
End With
Next
Exit Sub
Next
Else
Me.Label1.Text = „Datei nicht gefunden“
End If
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Information, „Fehler in ‚GetPropertiesAll()‘“)
End Try
End Sub
End Class