Hallo,
ich suche eine Funktion mit der ich eine oder mehrere Dateien in die Zwischenablage kopieren/verschieben kann. Da hab ich is jetzt folgendes gefunden:
Delphi-Quellcode:
uses
ShlObj, ClipBrd;
procedure CopyFilesToClipboard(FileList:
string);
var
DropFiles: PDropFiles;
hGlobal: THandle;
iLen: Integer;
begin
iLen := Length(FileList) + 2;
FileList := FileList + #0#0;
hGlobal := GlobalAlloc(GMEM_SHARE
or GMEM_MOVEABLE
or GMEM_ZEROINIT,
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;
// Example, Beispiel:
procedure TForm1.Button1Click(Sender: TObject);
begin
CopyFilesToClipboard('
C:\Bootlog.Txt'#0'
C:\AutoExec.Bat');
end;
{
Separate the files with a #0.
Dateien mit einem #0 trennen.
}
Damit kann ich die Dateien aber nur kopieren.
Weiss jemand wie ich sie aich verschieben kann, so dass man sie mit dem Explorer oder so wieder einfügen kann?