gpt4 book ai didi

delphi - 如何在delphi中延迟shell命令?

转载 作者:行者123 更新时间:2023-12-03 18:39:15 25 4
gpt4 key购买 nike

我正在使用Delphi 2010和ShellAPI。随着我正在构建的程序的增长,我需要一点帮助。这是该应用程序的笑话:

检查是否存在特定条件
如果存在上述条件,它将开始执行2个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;


我是Delphi的新手,但可以看到问题所在,第二条命令在上一条命令完成之前正在执行。如何解决此问题,以便第一个命令在调用第二个命令之前执行并完成?

更新:我添加了完整的伪代码,以便显示我要执行的操作。

最佳答案

如果您使用的命令是外部命令/程序,请考虑使用CreateProcess()并将INFINITE传递给WaitForSingleObject()。查看ExecAndWait()示例here

关于delphi - 如何在delphi中延迟shell命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3886631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com