Hier herrscht die Meinung vor, das ShellExecute ja quasi eine Fire and Forget Operation ist, wo dann evtl. der Reader ein großes Dokument öffnet, während schon ein zweites ShellExecute abgeschossen wird mit einem kleineren Dokument, das parallel schneller geöffnet und zum Drucker gesendet wird und schon ist die Druckreihenfolge durcheinander. Könnte das sein?
Jupp,
aber teilweise kann man auch warten.
ShellExecAndWait, bzw. CreateProcess
Das kommt aber auf das gestartete Programm drauf an. Wenn man z.B. einen Launcher wartet, der wiederum einen weiteren Prozess startet, bzw. die Daten nur übergibt, und sich dann beendet, dann kommt das natürlich auch wieder "vorzeitig" zurück ... wobei der Launcher natürlich wirklich fertig ist.
Natürlich kann man dann auch nicht sowas wie
ShellExecuteXXX(0, 'print', 'my.pdf', ...)
machen, sondern muß sich schon direkt an das "richtige" Programm wenden.
Lokal könnte man auch versuchen die Druckerwarteschlange zu überwachen und sendet den nächsten Druckauftrag erst dann ab, wenn der Letzte durch ist.
Oder man überwachte die Acrobat-Instanzen und startet den nächsten Druck, wenn keine Instanz mehr aktiv ist, die aktuell etwas drucken soll.
Oder ...