tobject);
procedure button2click(sender: tobject);
private
{ private declarations }
public
filelist:tstringlist;
{ public declarations }
end;
var
form1: tform1;
implementation
{$r *.dfm}
procedure tform1.formcreate(sender: tobject);
begin
filelist:=tstringlist.create;
button1.caption :=''复制文件'';
button2.caption :=''移动文件'';
self.show;
end;
procedure tform1.formclose(sender: tobject; var action: tcloseaction);
begin
filelist.free;
end;
procedure tform1.button1click(sender: tobject);
var
spath:string;
fstemp:shfileopstruct;
i:integer;
begin
spath:=inputbox(''文件操作'',''输入复制路径'',''c:\windows'');
if spath<>''''then begin
fstemp.wnd := self.handle;
file://设置文件操作类型
fstemp.wfunc :=fo_copy;
file://允许执行撤消操作
fstemp.fflags :=fof_allowundo;
for i:=0 to listbox1.items.count-1 do begin
file://源文件全路径名
fstemp.pfrom := pchar(listbox1.items.strings[i]);
file://要复制到的路径
fstemp.pto := pchar(spath);
fstemp.lpszprogresstitle:=''拷贝文件'';
if shfileoperation(fstemp)<>0 then
showmessage(''文件复制失败'');
end;
end;
end;
procedure tform1.button2click(sender: tobject);
var
spath:string;
fstemp:shfileopstruct;
i:integer;
begin
spath:=inputbox(''文件操作'',''输入移动路径'',''c:\windows'');
if spath<>''''then begin
fstemp.wnd := self.handle;
fstemp.wfunc :=fo_move;
fstemp.fflags :=fof_allowundo;
for i:=0 to listbox1.items.count-1 do begin
fstemp.pfrom := pchar(listbox1.items.strings[i]);
fstemp.pto := pchar(spath);
fstemp.lpszprogresstitle:=''移动文件'';
if shfileoperation(fstemp)<>0 then
showmessage(''文件复制失败'');
end;
end;
end;
end.
点击菜单的 project | build contextmenu 项,delphi就会建立contextmenu.dll文件,这个就是上下文相关菜单程序了。
使用,regsvr32.exe 注册程序,然后在windows的explore 中在任意的一个或者几个文件中点击鼠标右键,在上下文菜单中就会
多一个文件操作的菜单项,点击该项,在弹出窗口的列表中会列出你所选择的所有文件的文件名,你可以选择拷贝文件按钮或者
移动文件按钮执行文件操作。