Hallo Duke,
das Auslesen von Meta-Daten direkt aus dem Windows-Explorer ist mir noch nciht gelungen. Heißt nicht, dass es nicht ginge, ggf. mit passender API-Funktion, aber ich weiß es nicht und finde auch nichts im Netz....
Die normalen Eigenschaften wie Dateigröße, Erstelldatum usw. können ja z.B. via CreateObject("Scripting.FileSystemObject") ermittelt werden.
Das hast Du ja sicher auch schon gemacht.
Weitere Eigenschaften müssen über die EXIF-Daten ermittelt werden. Hier ein Ausschnitt aus dem vorgeschlagenem Tool, der genau das macht.
Muss bzw. könnte man halt noch ein wenig umbauen. Dafür fehlt mir derzeit Zeit, Muße und vor allem eine Beispieldatei.
Die einzelnen Eigenschaften werden über die Nummer 1 bis X usw. ermittelt und sind je Dateityp unterschiedlich. Höhe und Breite haben bei Video (MP4)-Dateien die Nummern 314 und 316 (s.Code)
Die Variablen der Funktion sind auf Modulebene dimensioniert und können deshalb in anderen Subs in diesem Modul verwendet werden, z.B in Zelle schreiben.
Probiere es halt mal aus. Vielleicht hat ja noch jemand eine einfachere, andere Lösung. Ich glaube aber nicht daran.
PS: Ob AVI hiermit funtkioniert, weiß ich nicht. Habe zur Zeit keine hier.
Code:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 |
|
Private Function GetFileDetails(sPath As String, sFile As String) As String
' Funktion ermittelt einige Datei-Parameter und bereinigt sie um unnötige Zeichen
Dim oFile As Object, i As Integer
With CreateObject("Shell.Application").Namespace(CVar(sPath))
Set oFile = .ParseName(sFile)
' 32 Firma, 30=Kamera-Typ, 31=Auflösung, 12 Aufnahmedatum
' 11 Video/Musik, 16 Intepret, 27 Länge, 165/194 Titel, 169 Datei-Typ
msFirma = .getdetailsof(oFile, 32) ' Hersteller
msKamera = .getdetailsof(oFile, 30) ' Kameratyp
msTyp = .getdetailsof(oFile, 11) ' Typ: Video, Musik, Foto
msTitel = .getdetailsof(oFile, 21) ' Titel des Songs
msZeit = .getdetailsof(oFile, 27) ' Länge des Songs
msDatTyp = .getdetailsof(oFile, 194) ' Länge des Songs
If msKamera <> "" Then
' If Not msKamera Like Split(msFirma)(0) & "*" Then _
' msKamera = msFirma & " " & msKamera
' End If
msPixel = .getdetailsof(oFile, 31) ' Auflösung
msHochBreit = .getdetailsof(oFile, 316) & " x " & .getdetailsof(oFile, 314)
msDatenrate = .getdetailsof(oFile, 313) & ", " & .getdetailsof(oFile, 315)
msBitrate = .getdetailsof(oFile, 28)
If Len(msPixel) > 2 Then msPixel = Mid$(msPixel, 2, Len(msPixel) - 2)
GetFileDetails = .getdetailsof(oFile, 12) ' Aufnahmedatum zurückgeben
msAufnahmedatum = ""
For i = 2 To Len(GetFileDetails)
If Mid$(GetFileDetails, i, 1) <> Chr$(0) Then _
msAufnahmedatum = msAufnahmedatum & Mid$(GetFileDetails, i, 1)
Next i
End With
End Function
Sub Test()
GetFileDetails "D:\Pictures\Videos\2019\", "GR_Poento_Bieber-20190830 (5).mp4"
Debug.Print msHochBreit
End Sub
|
|
|
|
_________
viele Grüße
Karl-Heinz
|