我正在使用Delphi 2010和ShellAPI。随着我正在构建的计划的增长,我需要一点帮助。下面是本申请的玩笑:如何在delphi中延迟shell命令?
检查是否在一定条件存在 如果所述条件存在,它开始执行其是依赖于前一个执行
uses
ShellApi;
procedure RenameDir(DirFrom, DirTo: string);
var
shellinfo: TSHFileOpStruct;
begin
with shellinfo do
begin
Wnd := 0;
wFunc := FO_RENAME;
pFrom := PChar(DirFrom);
pTo := PChar(DirTo);
fFlags := FOF_FILESONLY or FOF_ALLOWUNDO or
FOF_SILENT or FOF_NOCONFIRMATION;
end;
SHFileOperation(shellinfo);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
RenameDir('C:\Dir1', 'C:\Dir2');
RenameDir('C:\Dir3', 'C:\Dir');
end;
我是2个外壳命令新手在德尔福,但我可以看到这个问题,第二个命令在上一个命令完成之前执行。我如何解决这个问题,以便第一个命令在第二个命令被调用之前执行并完成?
更新:我添加了完整的伪代码,以便它显示我试图执行的操作。
Delphi默认库中没有可用的RenameDir过程...我建议您查看您正在使用的库的文档以了解其工作原理(可能是异步)以及如何了解第一个操作何时完成执行第二个成功。 – jachguate 2010-10-07 23:48:20
想知道什么版本的Delphi有一个ShellAPI.pas中的RenameDir例程?不是D2009/D2010 ... – 2010-10-08 05:31:44
我很抱歉,RenameDir是使用SHFileOperation的过程。我没有提供足够的细节来获得我所需要的帮助 – JamesW 2010-10-08 13:09:43