Problema aprendo un pdf tramite process.start

mercoledì 09 luglio 2008 - 16.55

andros Profilo | Newbie

Salve a tutti! Una mia applicazione produce un pdf, poi richiama con la seguente sub il pdf creato, aprendolo con il pdf reader associato. Il problema è il seguente:
lancio il programma che genera corretamente il mio pdf: con la process.start apre il reader e l'utente si ritrova il pdf sotto agli occhi. Se l'utente chiude correttamente il pdf e rilancia il programma, tutto è ok. Se invece lancia il programma quando è già attivo un processo del reader (lasciato aperto dal programma stesso precedentemente, oppure anche di un qualsiasi altro pdf) il programma non apre il nuovo pdf e il reader segnala l'errore "Adobe Acrobat. Errore durante l'apertura del documento. Questo file è già aperto o è usato da un'altra applicazione".
Se apro diversi pdf dall'esplora risorse, tutto va bene. Questo errore mi viene dato solo aprendo il reader dalla process.start.
Tutto questo con Visual Studio 2005, Win XP, Adobe Acrobat 7. Che altro posso provare?

...
OpenDocument("miofile.pdf",true,false)
...

Public Sub OpenDocument(ByVal FilePath As String, Optional ByVal bUseShellExec As Boolean = True, Optional ByVal bPrint As Boolean = False)
Dim Print As New System.Diagnostics.ProcessStartInfo, myProcess As New Process
'Verb is being always used as "open"
If bPrint = False Then
Print.Verb = "Open"
Else
Print.Verb = "Print"
End If
Print.WindowStyle = ProcessWindowStyle.Maximized
Print.FileName = FilePath
Print.WorkingDirectory = New IO.FileInfo(FilePath).DirectoryName
Print.UseShellExecute = bUseShellExec
Try
myProcess = System.Diagnostics.Process.Start(Print)
Catch ex As System.ComponentModel.Win32Exception
MsgBox(ex.Message & vbCrLf & ex.StackTrace)
End Try
End Sub

Brainkiller Profilo | Guru

>Se apro diversi pdf dall'esplora risorse, tutto va bene. Questo
>errore mi viene dato solo aprendo il reader dalla process.start.
>Tutto questo con Visual Studio 2005, Win XP, Adobe Acrobat 7.
>Che altro posso provare?

Ciao,
allora non ho ben capito che problema hai. Io ho copiato il tuo codice e ho fatto questa prova. Lancio la Winform apro un PDF, riclicco il pulsante per riaprire lo stesso PDF. Cosa succede ?
Al primo click mi istanzia Acrobat lo avvia e apre il PDF al secondo essendo già aperto il documento non fa altro. Quindi secondo me è il comportamento atteso e mi sembra corretto.
Unica differenza è che io uso Acrobat 8/9. Non so se quello che lamenti può essere una problematica legata al 7.
Fammi sapere.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

andros Profilo | Newbie

Grazie per la risposta!
Nel frattempo ho trovato il problema: talvolta non chiudevo correttamente il pdf generato! ... la cosa strana è che nonostante questo la prima istanza dell'apertura di adobe funzionava lo stesso!
Misteri informatici... anche se c'ha sempre (!?!?!?) ragione lui!!!
Grazie per l'interessamento!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5