Autor Beitrag
RichMan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 20



BeitragVerfasst: Di 23.09.03 20:22 
Hi Leute!

Bin grade beim schreiben einer kleinen Funktion für ein Programm.

Ich möchte von meinem Programm aus eine Liste mit zwei Dateien/Dateinamen(?) in die Zwischenablage einfügen, sodass z.B. im Explorermenü nach einem Klick auf "Einfügen" die beiden Dateien dort entsprechend eingefügt werden.

Folgenden Ansatz habe ich bereits:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Clipboard.Open;
try
 ClipBoard.SetAsHandle(CF_HDROP,DateienHandle);
finally
 Clipboard.Close;
end;


In der Windows API-Hilfe steht folgendes:
Zitat:
The SetClipboardData [in Delphi gibbet dafür auch "SetAsHandle" in TClipboard] function places data on the clipboard in a specified clipboard format. The window must be the current clipboard owner, and the application must have called the OpenClipboard function. (When responding to the WM_RENDERFORMAT and WM_RENDERALLFORMATS messages, the clipboard owner must not call OpenClipboard before calling SetClipboardData.)

HANDLE SetClipboardData(

UINT uFormat, // clipboard format
HANDLE hMem // data handle
);

(...)

CF_HDROP: A handle of type HDROP that identifies a list of files. An application can retrieve information about the files by passing the handle to the DragQueryFile functions.


:?: Frage: Wie bekomme ich so einen Handler mit meinen zwei Dateien nun zustande? Oder ist mein Ansatz ganz falsch?

Danke schonmal und schöne Grüße,
RichMan

Moderiert von user profile iconTino: Quote-Tags hinzugefügt.
toms
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1099
Erhaltene Danke: 2



BeitragVerfasst: Di 23.09.03 20:27 
RichMan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 20



BeitragVerfasst: Di 23.09.03 22:28 
Argh, jetzt dacht ich, ich geh nochmal kurz on und überzeuge mich davon, dass so spät keiner mehr Lust auf mein Zwischenablagen-Prob hat, und dann kommst du... Jetzt muss ich das natürlich noch ausprobieren. Juhuuu, Ränder unter den Augen, ich komme... ;)

Nee Quatsch, vielen Dank! :D Scheint genau das richtige zu sein!
RichMan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 20



BeitragVerfasst: Mi 24.09.03 13:00 
Titel: Nochmal... Problem nicht vollständig gelöst...
Also, die Funktion arbeitet gemäß ihrer "normalen" Spezifikation einwandfrei. Sprich: ich kann die Dateien in die Zwischenablage kopieren und sie z.B. im Explorer wieder einfügen.

Nun will ich diese Dateien aber in die Datei- bzw. Brennliste von Nero (dem Brennprogramm) einfügen. Tue ich dies, wird Nero ohne weitere Meldungen sofort beendet. Ich denk mal, dass die Daten in der Zwischenablage im falschen Format vorliegen bzw. Nero dieses Format nicht akzeptiert und dann einfach beendet.

Komischerweise: Es ist kein Problem, im Explorer eine Datei zu kopieren und sie in Nero einzufügen.

Welches Format könnte ich nutzen, damit ich auch in Fremdprogrammen wie Nero den Inhalt der Zwischenablge (eben die beiden Dateien) einfügen zu können? Hat da vielleicht jemand einen Tipp für mich?

Danke schonmal!
kasi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

Win XP
D5 Ent
BeitragVerfasst: Mi 24.09.03 14:31 
PSDK schreibt

DROPFILES Structure

--------------------------------------------------------------------------------

Defines the CF_HDROP clipboard format. The data that follows is a double null-terminated list of file names.

Versuch also mal

CopyFilesToClipboard('C:\Bootlog.Txt'#0'C:\AutoExec.Bat'#0#0);

kasi
RichMan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 20



BeitragVerfasst: Mi 24.09.03 15:40 
Gut, ich habe deinen Funktionsaufruf mal ausprobiert, aber der selbe Effekt: Im Explorer einfügen möglich, in Nero nicht.
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 25.09.03 09:53 
Titel: Re: Nochmal... Problem nicht vollständig gelöst...
RichMan hat folgendes geschrieben:
Ich denk mal, dass die Daten in der Zwischenablage im falschen Format vorliegen bzw. Nero dieses Format nicht akzeptiert und dann einfach beendet.

Ich denke mal das hört sich mehr nach einem Bug von Nero an. Oder warum sollte sich die Anwendung sonst schließen?

Gruß
Tino
RichMan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 20



BeitragVerfasst: Do 25.09.03 14:18 
Hmmm, könnte auch sein. Ich installiere mal ein anderes Brennprogramm und schau, ob es damit funktioniert.