拷贝文件到剪贴板(不是文件内容)(200分)

  • 主题发起人 主题发起人 Walter
  • 开始时间 开始时间
W

Walter

Unregistered / Unconfirmed
GUEST, unregistred user!
如何将文件(文件夹)拷贝到剪贴板,并且可以在资源管理器中粘贴。
完成文件(文件夹)复制的功能。
注意:1、不是文件内容。
2、符合Windiws资源管理器标准。
 
以前有类似问题讨论呀?
(不知什么原因,我无法搜索问题。)
谁帮忙搜搜也行。
 
我试过搜索问题也不能用
坛主,快看看怎么回事?
 
这是我在ExEx上的回答:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,ShlObj;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
const FileName:string='c:/netlog.txt';
var
DataHandle: THandle;
DataPointer: PDROPFILES;
begin
DataHandle := GlobalAlloc(GMEM_DDESHARE or GMEM_MOVEABLE,SizeOf(DROPFILES)+2+Length(FileName));
DataPointer := PDROPFILES(GlobalLock(DataHandle));
FillChar(DataPointer^,SizeOf(DROPFILES)+2+Length(FileName),0);

DataPointer.pFiles:=SizeOf(DROPFILES);
DataPointer.pt:=Point(0,0);
DataPointer.fNC:=False;
DataPointer.fWide:=False;
Move(FileName[1],Pointer(Integer(DataPointer)+SizeOf(DROPFILES))^,Length(FileName));
GlobalUnlock(DataHandle);
OpenClipboard(Form1.Handle);
EmptyClipboard;
SetClipboardData(CF_HDROP, DataHandle);
CloseClipboard;
end;

end.


shenqw
 
沈前卫 :
果然高手,不过可惜采用的是Drag,Drop方式。
我要的是复制,即使在同一目录下也可粘贴。
不知是否可再给一点提示?
 
我在以前试出来过
用OLEcon..控件 DELPHI有
只用几名代码就行了,
可在资源管理器中粘贴。
我那时想在WORD文件中使用,
你在好好想想吧。
 
多人接受答案了。
 
后退
顶部