高手们,帮看一下啊,如何用delphi开发资源管理器啊,谢谢了。分不多,以后补(100分)

  • 主题发起人 主题发起人 lovefreezhao
  • 开始时间 开始时间
L

lovefreezhao

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用Delphi开发一个与资源管理器类似的工具,使用Windows本身提供的一些数据结构和API,通过剪贴板来实现与资源管理器的 数据共享和传递。

想做到如下功能:
1,用户在资源管理器(Windows Explorer)中剪切/拷贝(Cut/Copy)文件,然后在自己的应用程序中进行粘贴(Paste)操作;
2.用户在自己的应用程序中剪切/拷贝文件,在资源管理其中粘贴操作。

我查好多资料了,还是不会~~~
将文件复制到剪贴板已经做到了。
如何剪切文件到剪贴板,如何从剪贴板中将文件取出,都还没有实现

我在网上下载了 老外用delphi开发的UltraExplorer ,试用了一下,感觉就很好,他的复制、剪切、粘贴,能完全与windows的资源管理器兼容,只是网上没有他的源码。

请各位高手帮个忙,最好能将源码发我邮箱,214dong@sohu.com,谢谢了~~~
 
function CopyFileToClp(sFile:string):integer;
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));
copymemory(Pointer(integer(pGet)+sizeof(hf)),Pointer(xs),length(xs));
GlobalUnlock(hGbl);
SetClipboardData(CF_HDROP,hGbl);
end;
finally
closeClipboard;
end;
end;
我用上面的这个函数已经实现了将文件复制到剪贴板上,其他的代码高手帮帮忙吧,谢谢了~~·~~
 
我想,把剪贴板上的文件粘贴出来,应该使用GetClipboardData()函数.
但函数具体怎么使用还是不太清楚,大富翁翻烂了,还是没有找到我要的东西.
继续寻找~~~

应该是还用copymemory函数,将 剪贴板地址 复制到 目的地址,但这个语句该怎么写呢?
还有GetClipboardData()这个函数,Delphi里是怎么写呢

望 哪位高手帮个忙啊,谢谢了.
 
问题已经解决了,最后全部完成还是在离职后,以前一直未接触过底层的东西.悲哀...
 
你在自言自语吗?
Samples下面有你想要的东西。
 
后退
顶部