1

全部

我在 Delphi 2007 中使用 CreateProcess 和 WaitForSingleObject 打开文件并等待它们被关闭。我发现当我连续打开两个 PDF 文件时,第二个 WaitForSingleObject 立即返回。我还发现 jpg 和 tif 文件会发生这种情况,但 txt 文件不会发生这种情况。此外,第二个 PDF 的打开时间比单独打开的时间长 10 秒!它也发生在 Vista 和 XP 以及一系列计算机上。我是在错误地使用 CreateProcess 还是其他原因?

任何帮助,将不胜感激。

问候

鲍勃

4

1 回答 1

2

发生的情况取决于注册以打开 PDF 或 JPG 文件的应用程序。如果您在 SDI 应用程序中打开文档,则每个CreateProcess()调用都会返回应用程序的进程句柄,您可以等待 - 这将在编辑文档的应用程序关闭时返回。

但是,如果应用程序仅限于单个实例,那么一旦新实例将数据传递给第一个实例(通常会在新框架中打开文档),每次进一步的调用都会返回,然后退出。我认为这就是您的情况,可能您正在使用 Acrobat Reader 打开 PDF 文件?

于 2009-04-15T19:18:06.560 回答