0

我有一个显示模态表单的 Delphi 应用程序插件。在单独表单的代码中,它调用另一个 exe 文件来处理一些文件,然后关闭。插件的第二部分从 exe 操作创建的文件。

我的问题是,在实际创建外部文件之前程序正在继续。有没有办法暂停我的 Delphi 插件并循环或等到 FileExists 返回 true 后再继续?

伪代码:

Launch form (ShowModal)
Form runs exe, manipulates external files
Close Form
Form released
if ExternalFiles exist, do stuff.

因为外部文件是在我的插件之外进行操作的,所以我无法判断它们何时完成并创建。

4

2 回答 2

9

大概在启动的 exe 退出时文件已经存在。您可以使用CreateProcess()启动 exe,然后使用WaitForSingleObject()或相关功能来检测该 exe 何时退出。然后您可以根据需要使用它创建的文件。

于 2013-04-15T07:56:06.910 回答
1

在启动后每秒检查一次的计时器中使用函数“filexists”。

另一种方法是使用

while not fileexists('c:\temp\somfile.txt') do begin
  sleep(1000);
end;

但我不太喜欢它,因为它会锁定您的应用程序。

于 2013-04-15T07:12:07.823 回答