剪贴板的问题?(200分)

  • 主题发起人 主题发起人 hxy2002
  • 开始时间 开始时间
H

hxy2002

Unregistered / Unconfirmed
GUEST, unregistred user!
如何实现往剪贴板里面写入要剪贴的文件,然后在我的电脑里面就可以用粘贴来剪贴文件?<br>
 
在USES 里先加 Clipbrd<br>然后就可以用Clipboard.Assign(Bitmap); 存到剪贴板了
 
这只是位图格式的,我的意思是往剪贴板里面写入要剪贴的文件,然后在我的电脑里面就可以用粘贴来剪贴文件
 
给你一个函数<br><br>uses <br>&nbsp; ShlObj, ClipBrd;<br><br>procedure CopyFilesToClipboard(FileList: string);<br>var<br>&nbsp; DropFiles: PDropFiles;<br>&nbsp; hGlobal: THandle;<br>&nbsp; iLen: Integer;<br>begin<br>&nbsp; iLen := Length(FileList) + 2;<br>&nbsp; FileList := FileList + #0#0;<br>&nbsp; hGlobal := GlobalAlloc(GMEM_SHARE or GMEM_MOVEABLE or GMEM_ZEROINIT,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SizeOf(TDropFiles) + iLen);<br>&nbsp; if (hGlobal = 0) then raise Exception.Create('Could not allocate memory.');<br>&nbsp; else begin<br>&nbsp; &nbsp; DropFiles := GlobalLock(hGlobal);<br>&nbsp; &nbsp; DropFiles^.pFiles := SizeOf(TDropFiles);<br>&nbsp; &nbsp; Move(FileList[1], (PChar(DropFiles) + SizeOf(TDropFiles))^, iLen);<br>&nbsp; &nbsp; GlobalUnlock(hGlobal);<br>&nbsp; &nbsp; Clipboard.SetAsHandle(CF_HDROP, hGlobal);<br>&nbsp; end;<br>end;<br>例子:<br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br>&nbsp; CopyFilesToClipboard('C:.Txt'#0'C:.Bat');{Separate the files with a #0.}<br>end;<br><br><br><br>
 
TO:boot.ini<br>&nbsp; 上面的可以实现复制,那么对于剪贴,该怎么实现。<br><br>
 
hxy2002,我来拣分了.[:D]
 
接受答案了.
 
后退
顶部