Objecthandle Funktion um Dateidetails zu editieren
Moin,
im Moment Sortiere ich meine Musik neu, da ich zur Musikorganisation gerade auf den Windows Mediaplayer umsteige. Nun, die Sortierung funktioniert schon per Autoit-Script perfekt, nur würde ich nun gerne auch automatisch die Interpreten und den Titel in den Details in den dafür vorgesehen Felder eintragen.
Auslesen, ja, das habe ich gefunden, nur schreiben irgendwie nicht bzw. nur in Powershell und da auch nicht als Objecthandle Funktion.
http://powershell.com/cs/media/p/8948.aspx
jetzt versuche ich den Codeschnipsel in Autoit zu übersetzen:
Wie gesagt, bisher das auslesen funktioniert ja super:
Somit konnte ich schon die Index Nummer der jeweiligen Felder schon ausfindig machen. (findet man ja auch im oben verlinkten Script)
Hat jemand eine Idee, wie man das in Autoit umsetzen kann? Ich mag dieses Cross-Scripting nicht und würde es deswegen gerne ausschließlich in Autoit umsetzen.
Gruß
Chris
im Moment Sortiere ich meine Musik neu, da ich zur Musikorganisation gerade auf den Windows Mediaplayer umsteige. Nun, die Sortierung funktioniert schon per Autoit-Script perfekt, nur würde ich nun gerne auch automatisch die Interpreten und den Titel in den Details in den dafür vorgesehen Felder eintragen.
Auslesen, ja, das habe ich gefunden, nur schreiben irgendwie nicht bzw. nur in Powershell und da auch nicht als Objecthandle Funktion.
http://powershell.com/cs/media/p/8948.aspx
jetzt versuche ich den Codeschnipsel in Autoit zu übersetzen:
$fileobject | Add-Member NoteProperty "Extended_$property" $value -force
Wie gesagt, bisher das auslesen funktioniert ja super:
Func AddFileDetails()
$oShell=ObjCreate("shell.application")
$oFolder=$oShell.NameSpace("D:\00_Userdata\Music\David Garrett")
If IsObj($oFolder) Then
$oFolderItem= $oFolder.ParseName("Zorbra's Dance.mp3")
if IsObj($oFolderItem) Then
For $i=1 to 34
$oInfo=$oFolder.GetDetailsOf($oFolderItem,$i)
MsgBox(0, "", $oInfo)
$oInfo=0
Next
EndIf
$oFolderItem=0
EndIf
$oFolder=0
$oShell=0
EndFunc
Somit konnte ich schon die Index Nummer der jeweiligen Felder schon ausfindig machen. (findet man ja auch im oben verlinkten Script)
Hat jemand eine Idee, wie man das in Autoit umsetzen kann? Ich mag dieses Cross-Scripting nicht und würde es deswegen gerne ausschließlich in Autoit umsetzen.
Gruß
Chris
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 228668
Url: https://administrator.de/contentid/228668
Ausgedruckt am: 18.12.2024 um 01:12 Uhr
4 Kommentare
Neuester Kommentar
Hallo Chris,
die Powershell-Funktion ist auch nur zum lesen der Attribute und Ergänzen dieser für die Anzeige in Powershell, jedoch nicht um die Eigenschaften auch wieder in die Datei zurückzuschreiben.
Eine mögliche Lösung für dein Vorhaben:
mehr dazu findest du hier:
http://technet.microsoft.com/en-us/library/ee692828.aspx
Grüße Uwe
die Powershell-Funktion ist auch nur zum lesen der Attribute und Ergänzen dieser für die Anzeige in Powershell, jedoch nicht um die Eigenschaften auch wieder in die Datei zurückzuschreiben.
Eine mögliche Lösung für dein Vorhaben:
- Das DSOFile COM-Object von MS herunterladen: http://www.microsoft.com/en-us/download/details.aspx?id=8422 (die DLL ins SYSTEM32 bzw. SYSWOW64-Verzeichnis (bei 64bit) kopieren und mit
regsvr32 DSOFILE.DLL
registrieren) - und dann via Script deine Eigenschaften setzen
$oDocument=ObjCreate("DSOFile.OleDocumentProperties")
$odocument.open("C:\test.txt")
$odocument.SummaryProperties.author ="Ich bin der Autor"
$odocument.Save
$odocument.Close
http://technet.microsoft.com/en-us/library/ee692828.aspx
Grüße Uwe
Zitat von @Sheogorath:
danke für den neuen Input, ich habe es ausprobiert, klappt leider nicht wirklich.
Bei mir gehts einwandfrei... vermutlich hast du die DLL nicht ins "System32" Verzeichnis kopiert und mitdanke für den neuen Input, ich habe es ausprobiert, klappt leider nicht wirklich.
regsvr32 dsofile.dll