我正在创建一个delphi app,使用cxShellListView。当我从另一个cxShellLisView拖动文件/文件夹时,应用程序会启动Supercopier实例(我安装并激活它),这就是我需要的。
在其他方面,我使用SHFileOpStruct如下:
function CopyFolder (aHandle : THandle; aSourceFolder, aDestinationFolder : string; aAction : Word; aMode : Integer) : Boolean;
const Aborted : Boolean = False;
var shfo : TSHFileOpStruct;
begin
FillChar(shfo,SizeOf(shfo),$0);
with shfo do
begin
if aAction > 2 then
begin
aAction := 2;
end;
if aMode > 5 then
begin
aMode := 1;
end;
case aAction of
1: wFunc := FO_MOVE;
2: wFunc := FO_COPY;
end;
pFrom := Pchar(aSourceFolder+#0+#0);
pTo := Pchar(aDestinationFolder+#0+#0);
case aMode of
1: fFlags := FOF_SILENT;
2: fFlags := FOF_ALLOWUNDO or FOF_FILESONLY;
3: fFlags := FOF_RENAMEONCOLLISION;
4: fFlags := FOF_NOCONFIRMATION;
5: fFlags := FOF_SIMPLEPROGRESS;
end;
Result := (SHFileOperation(shfo)= 0) and (not Aborted);
end;
end;
因此,当我使用此功能进行复制时,supercopier不会处理副本,而是启动标准的Windows对话框。 有关如何提出使用任何替代复制方法(如Supercopier 4或Windows中安装的其他复制方法)的副本的任何建议。