2009-04-15 15 views
1

TousCreateProcess et WaitForSingleObject échoue sur la deuxième de deux fichiers PDF

J'utilise CreateProcess et WaitForSingleObject dans Delphi 2007 pour ouvrir les fichiers et attendre qu'ils soient fermés. J'ai découvert que lorsque j'ouvre deux fichiers PDF à la suite, le second WaitForSingleObject retourne immédiatement. J'ai également constaté que cela se produit pour les fichiers jpg et tif mais pas les fichiers txt. De plus, le deuxième PDF prend 10 secondes de plus pour s'ouvrir que s'il était ouvert tout seul! Cela arrive aussi sur Vista et XP, et sur une gamme d'ordinateurs. Est-ce que j'utilise CreateProcess incorrectement ou est-ce autre chose?

Toute aide serait appréciée.

Cordialement

Bob

+0

veuillez poster votre code –

Répondre

2

Que se passe-t dépend de l'application qui est enregistrée pour ouvrir les fichiers PDF ou JPG. Si vous ouvrez les documents dans une application SDI, chaque appel CreateProcess() renvoie un descripteur de processus pour une application, que vous pouvez attendre - cela retournera lorsque l'application modifiant le document se ferme. Si toutefois une application est limitée à une seule instance, chaque appel supplémentaire retournera dès que la nouvelle instance aura transmis les données à la première instance (qui ouvrira généralement le document dans une nouvelle image), puis a sorti. Je pense que c'est ce qui se passe dans votre cas, vous utilisez probablement Acrobat Reader pour ouvrir les fichiers PDF?