Seite 1 von 1

ErstellDatum einer Datei in die Zwischenablage kopieren

Verfasst: 4. Mai 2011 17:01
von holenbach
:arrow:
Ich benötige eine Funktion als Knopf, die mir das Erstelldatum einer markierten Datei in die Zwischenablage kopiert. Mit Uhrzeit wäre noch besser.
Ich glaube, ich scheitere an der schieren Menge von Optionen und finde nicht das zusammengehörige. Bestimmt kann jemand helfen...

LG

Holenbach

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Verfasst: 6. Mai 2011 13:22
von holenbach
Hallo liebe Mitbürger,

findet sich dafür wirklich keine Lösung????

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Verfasst: 7. Mai 2011 11:18
von Nobmen
kann das irgendein programm ?
bis auf das normale kopieren (name immer vorhanden + weitere infomationen aus listerdarstellung)
in die ablage keine andere möglichkeit vorhanden!

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Verfasst: 9. Mai 2011 21:25
von holenbach
@nobmen

schade eigentlich, ich war der Meinung, dass nicht nur das setzen dieser Daten möglich sein müsste, sondern auch das gezielte auslesen.
Ich kann doch nicht der einzige sein, der solch eine Anforderung mal gestellt hat :cry:

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Verfasst: 9. Mai 2011 23:57
von Kundal
Ich bin mir ziemlich sicher, daß das möglich ist. Allerdings nur mit einem trickreichen VB-Script.
Im englischen Forum hat "leo" eine Technik beschrieben, mit der man die Umbenennen-Funktion zu solchen Zwecken missbrauchen kann:
"Abusing" Rename Scripts to do other things with file info
http://resource.dopus.com/viewtopic.php?t=8034

Ein Beispielscript, bei dem Dateiinformationen von Bildern in die Zwischenablage kopiert werden wäre dies:
http://resource.dopus.com/viewtopic.php ... +Clipboard

Wenn du also Ahnung von VB-Script hast kannst du dir damit selbst was basteln. Ansonsten poste dein Anliegen mal im englischen Forum in der Hoffnung, daß dir jemand dabei hilft.
Meine VB-Kenntnisse beschränken sich leider auf klauen, modifizieren und mit Versuch-und-Irrtum probieren bis es läuft.

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Verfasst: 10. Mai 2011 15:15
von holenbach
Hallo kundal

danke für deine Ausführungen. Ich bin mit VB Script durchaus bewandert, von daher war es kein Problem, damit die gesuchten Werte auszulesen:

Code: Alles auswählen

@script vbscript
option explicit
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
Set oFile = fs.GetFile("C:\Test\test.txt")
Dopus.OutputString oFile.DatelastModified
Nur jetzt natürlich wieder ein Problem vom OPUS. Wie bekomme ich die Pfadvariable {file$} an das Script übergeben, da es ja keinen direkten Aufruf gibt, und die ausgelesenen Werte als neue Variable zurück zum DOpus???

LG und schon mal vielen Dank.

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Verfasst: 11. Mai 2011 21:02
von Kundal
Hallo holenbach,
Der Trick ist das "Missbrauchen" der Rename-Funktion. Die erste Zeile in deinem Button muss also etwa so aussehen:
Rename FILEINFO TO "{modifieddate}|{modifiedtime}"

Durch den Rename-Befehl wirkt der Button auf markierte Dateien und Ordner.
Erst dann folgt das Script. Im Script wird dann einerseits verhindert, daß die markierten Dateien/Ordner tatsächlich umbenannt werden und andererseits die Information an die Zwischenablage übergeben. Bei mehreren Objekten wird eine Liste erstellt.

Du solltest dir von dem Link zum Beispielscript die Datei "IMG_links_to_Clipboard.zip" herunterladen, entpacken (!) und die "IMG links to Clipboard.dcf" im Anpassen-Modus auf eine Toolbar ziehen. Dann kannst du dir per Rechtsklick-Bearbeiten das komplette Script ansehen und die einzelnen Schritte analysieren um es für deine Zwecke zu modifizieren. Die Script-Auszüge auf der Webseite genügen nicht, da das Wesentliche nicht enthalten ist.

Das Script macht im Prinzip genau das was du willst, nur daß die Informationen für Höhe und Breite aus Bildern ausgelesen und (mit Präfix und Pfadangaben versehen) in die Zwischenablage kopiert werden. Du musst also die benötigten Variablen anpassen, überflüssiges ausmerzen (z.B. Verwendung von "setclip.exe") usw. was dir nur gelingen wird wenn du verstanden hast, was genau das Script tut. Leo's Kommentare im Script sind dabei hilfreich.

Wenn es dir gelingt das Script anzupassen bitte hier posten, damit andere auch profitieren. Viel Erfolg!

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Verfasst: 11. Mai 2011 22:50
von Kundal
Hallo holenbach,
Ich habe mir mal den Spaß gemacht den Code für dich soweit zu modifizieren, daß er funktioniert.


Das Script ist nur sehr geringfügig gegenüber dem Original verändert und enthält deshalb jede Menge überflüssigen Müll. Es kopiert aber das Datum und die Zeit der letzten Änderung wie gewünscht in die Zwischenablage.

Das Format ist "YYYY-MM-DD HH;MM;SS", also z.B. "2011-05-11 22;45;10". Das läßt sich in der ersten Zeile des Buttoncodes ändern. Wenn du lieber das Format "11.05.2011 22-45-10" haben willst muss dort folgendes stehen:

Rename FILEINFO TO "W_{createddate|D#dd.MM.yyyy}|H_{createdtime|T#HH-mm-ss}"
Doppelpunkte bei der Zeitangabe werden vom Rename-Befehl leider nicht akzeptiert, weil sie in Dateinamen nicht erlaubt sind.
Weitere Änderungen (z.B. ein Komma hinter dem Datum) müssen weiter unten im Script eingetragen werden und zwar in der Zeile:
strClip = strClip & strWidth & " " & strHeight (12. Zeile vom Ende gezählt)
Für das Komma müsste dort stehen:
strClip = strClip & strWidth & ", " & strHeight

Vielleicht hast du ja Lust den ButtonCode weiter zu bearbeiten und zu entmüllen.

Den fertigen Button im *dcf- Format habe ich hier gezippt angehängt:

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Verfasst: 11. Mai 2011 23:03
von Kundal
Gerade fällt mir auf, daß du ja nicht Datum und Zeit der letzten Änderung sondern das Erstelldatum mit Zeit haben willst.
Hier also der richtige Button für dich.

P.S.: Solltest du Directory Opus nicht im Standardpfad "C:\Program Files\GPSoftware\Directory Opus" installiert haben müsstest du den Pfad zu "dopusrt.exe" im Buttoncode korrigieren damit es funktioniert.

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Verfasst: 12. Mai 2011 12:42
von holenbach
Hallo Kundal,

vielen vielen Dank für deine ausführlichen Bemühungen. Werde deinen Vorschlag testen und dann hier berichten :-)

LG

holenbach

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Verfasst: 12. Mai 2011 16:15
von holenbach
Hallo Kundal und alle die es noch interessiert:

Hier kommt der abgespeckte Code für den Kopf:

Kopiere das Datum der letzten Änderung der markierten Datei in die Zwischenablage

Code: Alles auswählen

Rename FILEINFO TO "{modifieddate|D#dd.MM.yyyy} {modifiedtime|T#HH-mm-ss}"
@script vbscript
Option Explicit

Dim strOpusHomePath
strOpusHomePath = "C:\Program files\GPSoftware\Directory Opus\DOpusRT.exe"
Dim Shell
Dim Clip
Set Shell = CreateObject("WScript.Shell")
Function Rename_GetNewName(strFileName, strFilePath, fIsFolder, strOldName, ByRef strNewName)
	Clip = strNewName
	strNewName = ""
	Clip = Replace(Clip,"-",":")
	' Set the clipboard via Opus.
	Shell.Run """" & strOpusHomePath & """ /CMD Clipboard Set " & Clip,0,True
End Function
Wie man sehen kann, eine recht einfache Geschichte, wenn man denn die Zusammenhänge verstanden hat.

Danke noch mal an Kundal für seine tatkräftige Unterstützung.

LG
Holenbach

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Verfasst: 12. Mai 2011 22:20
von Kundal
Hallo holenbach,
Glückwunsch, das ist doch jetzt schön kompakt geworden!

Durch ersetzen von z.B. "modifieddate" durch "createddate" können damit ja auch andere Dateiinfos ausgelesen werden.

Beim Ausprobieren ist mir aber noch folgendes aufgefallen:
Sind mehrere Dateien markiert wird richtigerweise die erste Datei berücksichtigt. Sind aber auch Ordner markiert wird bei mir die letzte Datei genommen. Dieses Verhalten wird durch ein "@firstfileonly" am Anfang des Codes korrigiert.

Einige Ideen zur Weiterentwicklung des Scripts:
Manche Benutzer hätten evtl. gern die in der Originalvorlage vorhandene Funktion, daß bei mehreren markierten Dateien eine Liste angelegt wird. Wer das braucht hätte dann wohl auch gern die Möglichkeit jeder Zeile einen Präfix und/oder den Dateinamen (mit voller Pfadangabe) und den ausgelesenen Infos ein "erstellt: " oder "modifiziert: " voranstellen zu können. Damit könnten dann ausführliche Listen erstellt und vielleicht sogar gleich in eine Textdatei gespeichert werden. Mit diesen im Code wählbaren Optionen wäre der Button dann universell einsetzbar.
Vielleicht hat dich ja (wie mich schon länger) die Lust am kreativen DOpus-Button-basteln gepackt und du baust das noch ein.
In der "Schaltersammlung (mehrfaches) Umbenennen" findest du übrigens einige höchst interessante Anwendungsbeispiele für Leo's "Abusing Rename Scripts"-Technik (z.B. "MP3's nach Tags umbenennen und nach "Eigene Musik" verschieben" oder "Eine gewünschte Anzahl von Zeichen AN einer beliebigen Stelle (von VORNE) entfernen (by JohnZeman)")
Guckst du hier:
http://www.haage-partner.de/forum/viewt ... =17&t=3368