Dateien in der Zwischenablage
-
Ich schreibe gerade an einer Art Dateimanager. Nachdem ich gerade Drag&Drop hingekriegt habe, ist nun Copy&Paste dran. Dabei würde ich gerne das selbe System wie der Win-Explorer verwenden, um auch zu/von ihm Dateien zu schicken/bekommen. Aber ich kann mit dem CF_HDROP-Format nichts anfangen! Wie mache ich das jetzt?
-
Ach ja: Dieses Drag&Drop läuft nur Programmintern. Es ist NICHT dasselbe wie im Win-Explorer!
-
Ich habe noch http://codeguru.earthweb.com/clipboard/PasteFNames.shtml und http://codeguru.earthweb.com/clipboard/CopyFilesToExplorer.shtml dazu gefunden, aber die sind mir zu hoch...
Kapiert das jemand?
-
http://www.delphipages.com/tips/copyview.cfm?ID=95
Vielleicht bringt dich das weiter
-
Das ist ja cool... Den Code verstehe ich sogar! (Im Gegensatz zu dem VC++ - Zeug aus meinen Links - einfach schrecklich!)
Das mit Zwischenablage dürfte ja dann ähnlich gehen. ABER: Wie kann ich feststellen, ob die Datei(en) verschoben oder kopiert werden sollen? Bei DragDrop kann ich ja den Tastencode von Strg abfangen, aber bei CopyPaste...?
Naja, jetzt werde ich mal mein Drag&Drop austauschen...
-
Ermittel über GetKeyboardState in der Methode, die WM_DROPFILES verarbeitet, den Tastenstatus, ob STRG gedrückt ist.
-
Danke Burkhi, aber das ging daneben.
Ich habe gemeint, ich weiß, wie ich Strg abfrage, aber es bringt mir bei Kopieren/Einfügen nichts.Wie mache ich es da? Müsste ja auch in der Zwischenablage oder so stehen. Tut es aber anscheinend nicht.
-
Hm,
meine Idee war, das wenn die Methode aufgerufen und dabei die STRG noch gedrückt ist, dann kann man statt "Kopieren" ja "Bewegen" auslösen
Aber wahrscheinlich ist das nicht die von dir gewünschte Funktionalität.
-
Ja, schon. Aber das klappt nun mal nicht, wenn ich mit Strg+C und Strg+V arbeite. Nur wenn man ne Datei am Kragen packt und in mein Programm schleift... (Von manchen auch liebevoll "Drag&Drop" genannt.)
Wenn ich etwas in die Zwischenablage kopiere, steht das selbe drin, wie wenn ich etwas in die Zwischenablage ausschneide. Jedenfalls sieht das so aus.