ErstellDatum einer Datei in die Zwischenablage kopieren

Forum zur Erstellung von Schaltern über den Befehlseditor
Antworten
holenbach
Beiträge: 6
Registriert: 4. Mai 2011 16:39
Betriebssystem: win 7 Prof 64 Bit
Produkt: DOpus 10.0 / 9.5.6.0

ErstellDatum einer Datei in die Zwischenablage kopieren

Beitrag von holenbach » 4. Mai 2011 17:01

: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

holenbach
Beiträge: 6
Registriert: 4. Mai 2011 16:39
Betriebssystem: win 7 Prof 64 Bit
Produkt: DOpus 10.0 / 9.5.6.0

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Beitrag von holenbach » 6. Mai 2011 13:22

Hallo liebe Mitbürger,

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

Benutzeravatar
Nobmen
Boardbetreuer
Beiträge: 2819
Registriert: 26. Jun 2004 08:48
Betriebssystem: Win 10 Home/Pro 32/64bit
Produkt: DOpus 12.x + Betas
Version DOpus: Pro

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Beitrag von Nobmen » 7. Mai 2011 11:18

kann das irgendein programm ?
bis auf das normale kopieren (name immer vorhanden + weitere infomationen aus listerdarstellung)
in die ablage keine andere möglichkeit vorhanden!

holenbach
Beiträge: 6
Registriert: 4. Mai 2011 16:39
Betriebssystem: win 7 Prof 64 Bit
Produkt: DOpus 10.0 / 9.5.6.0

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Beitrag von holenbach » 9. Mai 2011 21:25

@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:

Benutzeravatar
Kundal
Moderator
Beiträge: 1337
Registriert: 20. Apr 2010 21:26
Betriebssystem: Win7 & Win 10 Pro 64 bit
Produkt: DOpus 12 x64 - Letzte Betaversion
Version DOpus: Pro

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Beitrag von Kundal » 9. Mai 2011 23:57

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.

holenbach
Beiträge: 6
Registriert: 4. Mai 2011 16:39
Betriebssystem: win 7 Prof 64 Bit
Produkt: DOpus 10.0 / 9.5.6.0

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Beitrag von holenbach » 10. Mai 2011 15:15

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.

Benutzeravatar
Kundal
Moderator
Beiträge: 1337
Registriert: 20. Apr 2010 21:26
Betriebssystem: Win7 & Win 10 Pro 64 bit
Produkt: DOpus 12 x64 - Letzte Betaversion
Version DOpus: Pro

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Beitrag von Kundal » 11. Mai 2011 21:02

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!
Zuletzt geändert von Kundal am 11. Mai 2011 23:21, insgesamt 1-mal geändert.

Benutzeravatar
Kundal
Moderator
Beiträge: 1337
Registriert: 20. Apr 2010 21:26
Betriebssystem: Win7 & Win 10 Pro 64 bit
Produkt: DOpus 12 x64 - Letzte Betaversion
Version DOpus: Pro

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Beitrag von Kundal » 11. Mai 2011 22:50

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:
Dateianhänge
modifieddate to Clipboard.zip
(1.87 KiB) 166-mal heruntergeladen
Zuletzt geändert von Kundal am 12. Mai 2011 00:22, insgesamt 1-mal geändert.

Benutzeravatar
Kundal
Moderator
Beiträge: 1337
Registriert: 20. Apr 2010 21:26
Betriebssystem: Win7 & Win 10 Pro 64 bit
Produkt: DOpus 12 x64 - Letzte Betaversion
Version DOpus: Pro

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Beitrag von Kundal » 11. Mai 2011 23:03

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.
Dateianhänge
CreatedDate to Clipboard.zip
(1.86 KiB) 163-mal heruntergeladen

holenbach
Beiträge: 6
Registriert: 4. Mai 2011 16:39
Betriebssystem: win 7 Prof 64 Bit
Produkt: DOpus 10.0 / 9.5.6.0

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Beitrag von holenbach » 12. Mai 2011 12:42

Hallo Kundal,

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

LG

holenbach

holenbach
Beiträge: 6
Registriert: 4. Mai 2011 16:39
Betriebssystem: win 7 Prof 64 Bit
Produkt: DOpus 10.0 / 9.5.6.0

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Beitrag von holenbach » 12. Mai 2011 16:15

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

Benutzeravatar
Kundal
Moderator
Beiträge: 1337
Registriert: 20. Apr 2010 21:26
Betriebssystem: Win7 & Win 10 Pro 64 bit
Produkt: DOpus 12 x64 - Letzte Betaversion
Version DOpus: Pro

Re: ErstellDatum einer Datei in die Zwischenablage kopieren

Beitrag von Kundal » 12. Mai 2011 22:20

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

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste