我正在使用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