Ciao ragazzi, sto scrivendo un programma che data una lista di file pdf li stampa. Per stamparli questi file li leggo da una lista ordinata alfabeticamente.
Poi per eseguire l'operazione di stampa uso questo codice:
Il tutto funziona, ma come detto può darsi che stampa prima il file che inizia con la lettera b che quello con la lettera a.codice:For Each File In filesInDir If Mid(File, InStrRev(File, ".")) = ".pdf" Then Dim PrcProcesso As New Process() PrcProcesso.StartInfo.FileName = File PrcProcesso.StartInfo.Verb = "PrintTo" PrcProcesso.StartInfo.Arguments = Chr(34) + printer + Chr(34) PrcProcesso.StartInfo.WindowStyle = ProcessWindowStyle.Hidden PrcProcesso.StartInfo.UseShellExecute = True PrcProcesso.StartInfo.CreateNoWindow = True PrcProcesso.Start() PrcProcesso. PrcProcesso.Close() End If next
Mi sembra di aver capito che lo fa perchè riesce a mandare in stampa più velocemente un file che risulta essere piu piccolo di un altro, quindi se per esempio b é piu piccolo di a, nonostante venga aperto dopo va in stampa prima.
Sapete come fa, come faccio ad aspettare che il processo faccia tutto?
Se metto:
System.Threading.Thread.Sleep(2000)
prima di prcClose la cosa migliora, ma nn so quanto puo essere affidabile questa cosa!
Grazie