auslesen, die man mit Windows über Datei / Eigenschaften / Details (Win7) editieren kann.
Ich benötige aber nur bspw. den Inhalt von 'Comments' bzw. 'Kommentare'. Kann man das
direkt ansprechen? Mit TrialAndError habe ich den Wert 24 ermittelt, vermute aber das
kann sich auch ändern...
Wie würdet Ihr das machen? Geht das nur über COM? GetFileVersionInfo_() liefert leider
keine erweiterten Eigenschaften...
Code: Alles auswählen
XIncludeFile "COMatePLUS_Residents.pbi"
XIncludeFile "COMatePLUS.pbi"
Structure _EOP
Description.s
Value.s
EndStructure
NewMap EOP_Items._EOP()
Procedure GetExtendedFileProperties(file$, Map Item._EOP())
Define.COMateObject oShell
Define.COMateObject oFolder
Define.COMateObject oFolderItem
Define.COMateObject oFolderItems
Define DetailCounter
Define.s DetailDescription, DetailValue
oShell = COMate_CreateObject("Shell.Application")
If oShell
oFolder = oShell\GetObjectProperty("NameSpace('" + GetPathPart(file$) + "')")
If oFolder
oFolderItems = oFolder\GetObjectProperty("Items")
If oFolderItems
oFolderItem = oFolder\GetObjectProperty("ParseName('" + GetFilePart(file$) + "')")
If oFolderItem
For DetailCounter = 0 To 512
DetailDescription = oFolder\GetStringProperty("GetDetailsOf(" + Str(oFolderItems) + " As COMateObject, " + Str(DetailCounter) + ")")
DetailValue = oFolder\GetStringProperty("GetDetailsOf(" + Str(oFolderItem) + " As COMateObject, " + Str(DetailCounter) + ")")
If DetailValue
If AddMapElement(Item(), Str(DetailCounter))
Item()\Description = DetailDescription
Item()\Value = DetailValue
Debug "Nr." + Str(DetailCounter) + " -> " + DetailDescription + ": " + DetailValue
EndIf
EndIf
Next
oFolderItem\Release()
Else
Debug "!oFolderItem"
Debug COMate_GetLastErrorDescription()
EndIf
oFolderItems\Release()
Else
Debug "!oFolderItems"
Debug COMate_GetLastErrorDescription()
EndIf
oFolder\Release()
Else
Debug "!oFolder"
Debug COMate_GetLastErrorDescription()
EndIf
oShell\Release()
Else
Debug "!oShell"
Debug COMate_GetLastErrorDescription()
EndIf
EndProcedure
GetExtendedFileProperties("C:\Temp\Test.jpg", EOP_Items())
Debug EOP_Items("24")\Value ; Inhalt von Kommentare ausgeben