Hallo DPler,
entschuldigt bitte wenn ich ein weiteres Thema zu den vielen anderen Clipboard-Themen erstelle, aber die anderen führen leider nicht zur Lösung.
Nun zu meinem Problem:
Ich möchte gerne Dateien in die Zwischenablage kopieren und woanders einfügen. Beim kopieren geht etwas schief
dazu verwende ich diesen Code:
Delphi-Quellcode:
//################################################
// CopyFilesToClipboard
//################################################
procedure TfrmAnfrage.CopyFilesToClipboard(FileList:
string);
var
DropFiles: PDropFiles;
hGlobal: THandle;
iLen: Integer;
begin
iLen := Length(FileList) + 2;
FileList := FileList + #0#0;
hGlobal := GlobalAlloc(GMEM_MOVEABLE+GMEM_DDESHARE,
SizeOf(TDropFiles) + iLen);
if (hGlobal = 0)
then raise Exception.Create('
Could not allocate memory.');
begin
DropFiles := GlobalLock(hGlobal);
DropFiles^.pFiles := SizeOf(TDropFiles);
Move(FileList[1], (PChar(DropFiles) + SizeOf(TDropFiles))^, iLen);
GlobalUnlock(hGlobal);
Clipboard.SetAsHandle(CF_HDROP, hGlobal);
end;
end
ich habe
(PChar(DropFiles)
durch
(PAnsiChar(DropFiles)
bereits ersetzt da es sonst zu einem Fehler beim kopieren führt.
dann habe ich das Tool
Clipboard-Explorer besorgt
und folgende abweichung beim kopieren im Explorer und beim kopieren per Programm festgestellt:
Explorer: HDROP: C:\Users\XXX\Documents\
RAD Studio\Projekte\Hexacom\SalesBoard\bin\Anhang\10_P romotion2010_Q3.pdf
Programm: HDROP: C:\Users\XXX\Documents\
RAD Studio\Projekte\He????.?.lesBoard\bin\Anhang\10_Pr omotion2010_Q3.pdf
desweiteren wird per programm nur der HDROP erstellt.
Beim Explorer kopieren der PDF: an die 11 Formate (DataObject,ShellIDListArray,dataobjectAtrribute.. .usw)
Ich wäre euch für jeden Tipp sehr Dankbar!
MFG
H3llsing