unit uClipbrfFilePaste; {$mode delphi} interface uses Classes, SysUtils, ClipBrd, ShlObj, Windows; procedure CopyFilesToClipboard(FileList: string); implementation Uses fMain; 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); OpenClipboard(frmMain.Handle); EmptyClipboard; SetClipboardData(CF_HDROP,hGlobal); CloseClipboard; end; end; end.