有关文件复制和剪贴板的关系的问题
在资源管理器中进行了“复制”或者“剪切”的操作,然后到Delphi6的ShellListView窗口中粘贴操作,不知道该如何进行?如果不是ShellListView而只是一个普通的程序又该如何操作?一句话,Windows的文件复制剪切操作是如何进行的?请教各位高手!!!在大富翁论坛里面搜索得知和剪贴板没有太大关系,不知哪位能够提供详细信息!多谢! 问题点数:100、回复次数:13Top
1 楼gaoys1979(虫洞)回复于 2002-04-22 17:15:06 得分 0
哪位来提个意见,这里刷新太快,两秒钟就到后面去了!呜呜~~~~~~~Top
2 楼jishiping(JSP 季世平)回复于 2002-04-22 18:14:02 得分 10
先帮你 up .Top
3 楼Carfield(一只特别懒的猫)回复于 2002-04-22 18:33:58 得分 10
看一下Delphi自带的Demo,好像有此类的应用Top
4 楼hch_d(城城)回复于 2002-04-22 18:43:39 得分 10
D6的B盘里面有这种例子Top
5 楼gaoys1979(虫洞)回复于 2002-04-22 19:57:56 得分 0
哦,我先看看,同时再UPUP,努力~~~~~~~~~~~~Top
6 楼gaoys1979(虫洞)回复于 2002-04-22 19:59:26 得分 0
还有一点请各位注意:
我要求的功能还希望能够和资源管理器兼容,也就是在自己的程序中复制一个文件,在资源管理器里面也可以粘贴!Top
7 楼gaoys1979(虫洞)回复于 2002-04-23 15:00:39 得分 0
啊?难道没有人知道?这可是100大元啊!我看到在AcdSee里面是可以实现这个功能的,因此办法肯定是有的。就是不知道要怎么做,唉!Top
8 楼dreamfan(改行不做程序员,回家种地。)回复于 2002-04-23 15:15:37 得分 10
利用剪贴板好像实现更简单!在资源管理器里面也可以粘贴!
Top
9 楼gaoys1979(虫洞)回复于 2002-04-23 20:36:15 得分 0
dreamfan(dreamfan) 兄:剪贴板实现?那么资源管理器进行了文件复制或者剪切操作以后剪贴板的格式是什么呢?Top
10 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2002-04-23 20:56:58 得分 0
等下班给你代码Top
11 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2002-04-23 21:00:38 得分 50
function CopyFileToClp(sFile:string;bCopy:boolean):integer;
{
功能 将文件拷贝到剪贴板
参数 sFile 拷贝文件名,多个文件需要以chr(0)分割
bCopy 没有用到
}
var
hf:DROPFILES;
xs:string;
hGbl:UInt;
i:integer;
pGet:Pointer;
begin
xs:=sFile + chr(0);;
openclipboard(0);
EmptyClipboard;
try
hf.pt := Point(0,0);
hf.fNC := false;
hf.fWide := false;
hf.pFiles := sizeof(hf);
hGbl:=GlobalAlloc(GHND{GMEM_ZEROINIT or GMEM_MOVEABLE},
(sizeof(hf)+Length(xs)));
pGet:=Globallock(hGbl);
if assigned(pGet)then
begin
copymemory(Pointer(Integer(pGet)),@hf,sizeof(hf)); //sizeof(DROPFILES)
copymemory(Pointer(integer(pGet)+sizeof(hf)),Pointer(xs),length(xs));
GlobalUnlock(hGbl);
SetClipboardData(CF_HDROP,hGbl);
end;
finally
closeClipboard;
end;
end;Top
12 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2002-04-23 21:01:30 得分 10
上面的代码需要引用:
shlobj,clipbrd,Top
13 楼gaoys1979(虫洞)回复于 2002-04-25 19:31:40 得分 0
问题已经解决了。最主要的是根据technofantasy(www.applevb.com)同志的函数,所以分分了。Top




