CreateProcess и WaitForSingleObject завершаются ошибкой на втором из двух файлов PDF - PullRequest
1 голос
/ 15 апреля 2009

Все

Я использую CreateProcess и WaitForSingleObject в Delphi 2007 для открытия файлов и ожидания их закрытия. Я обнаружил, что, когда я открываю два файла PDF подряд, второй WaitForSingleObject возвращается немедленно. Я также обнаружил, что это происходит с файлами jpg и tif, но не с файлами txt. Кроме того, второй PDF-файл занимает 10 секунд дольше, чем если бы он открывался сам! Это также происходит как в Vista и XP, так и на ряде компьютеров. Я использую CreateProcess неправильно или это что-то еще?

Любая помощь будет оценена.

Привет

Bob

1 Ответ

2 голосов
/ 15 апреля 2009

Что происходит, зависит от приложения, которое зарегистрировано для открытия файлов PDF или JPG. Если вы открываете документы в приложении SDI, то каждый вызов CreateProcess () возвращает дескриптор процесса для приложения, которого вы можете ждать - он вернется, когда приложение, редактирующее документ, закроется.

Если, однако, приложение ограничено одним экземпляром, то каждый последующий вызов будет возвращаться, как только новый экземпляр передаст данные первому экземпляру (который обычно открывает документ в новом фрейме), а затем имеет вышел. Я думаю, что именно так и происходит в вашем случае, возможно, вы используете Acrobat Reader для открытия файлов PDF?

...