Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

brunocosta

Abrir e fechar um pdf com vb.net

Recommended Posts

Ola!!Tenho uma aplicação feita em VB.net que me permite abrir e fechar documentos word, excel e pdf. Mas tenho um problema com os pdf.Quando quero fechar um pdf, se tiver mais pdf abertos a aplicação fecha todos. O que eu não quero que aconteça. Quero fechar só aquele pdf e manter os outros abertos.Este é o código que eu utilizo para abrir e fechar um doc word e funciona bem:Function OpenApp(ByVal WordVisible As Boolean) Try If Wapp Is Nothing = True Then Dim WordProcesses() As Process = Process.GetProcessesByName("Winword") Dim pId() As Integer ReDim pId(WordProcesses.Length) Dim i As Int16 While i < WordProcesses.Length pId(i) = WordProcesses(i).Id i += 1 End While Wapp = CreateObject("word.Application") Wapp.Visible = WordVisible WordProcesses = Process.GetProcessesByName("Winword") Dim j As Int16 Dim bool As Boolean For j = 0 To WordProcesses.Length - 1 Dim k As Int16 bool = False For k = 0 To pId.Length - 1 If WordProcesses(j).Id = pId(k) Then bool = True Exit For End If Next If bool = False Then LastOpenProcId = WordProcesses(j).Id myWordProcess = Process.GetProcessById(LastOpenProcId) Exit For End If Next End If Catch ex As Exception MsgBox(ex.Message) End Try End FunctionWaitForExit corresponde ao tempo (milisegundos) de espera para efectuar o Kill ao nosso processo no caso de Wapp.Quit falharFunction CloseApp(Optional ByVal WaitForExit As Integer = 20000) Try If WApp Is Nothing = False Then ResetFunction = False If WaitForExit <= 0 Then WaitForExit = 20000 StopTimer.Interval = WaitForExit StopTimer.Start() While WApp.BackgroundPrintingStatus = 1 Or WApp.BackgroundSavingStatus = 1 If ResetFunction = True Then Exit While : StopTimer.Stop() End While WApp.Quit() WApp = Nothing myWordProcess.WaitForExit(5000) If Me.Exists = True Then myWordProcess.Kill() End If End If Catch ex As Exception MsgBox(ex.Message) End TryEnd FunctionQuando tento fazer Papp = CreateObject("pdf.Application") dá-me um erro: "Cannot create ActiveX component"...Alguém sabe como posso fechar só o pdf que pretendo??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Amigo,Também estou tendo problemas para criar um objeto do tipo Excel.Application que também mostra a mensagem "Cannot create ActiveX component" ao executar a aplicação no IIS.Como você conseguiu resolver o problema do excel?

Ola!!Tenho uma aplicação feita em VB.net que me permite abrir e fechar documentos word, excel e pdf. Mas tenho um problema com os pdf.Quando quero fechar um pdf, se tiver mais pdf abertos a aplicação fecha todos. O que eu não quero que aconteça. Quero fechar só aquele pdf e manter os outros abertos.Este é o código que eu utilizo para abrir e fechar um doc word e funciona bem:Function OpenApp(ByVal WordVisible As Boolean) Try If Wapp Is Nothing = True Then Dim WordProcesses() As Process = Process.GetProcessesByName("Winword") Dim pId() As Integer ReDim pId(WordProcesses.Length) Dim i As Int16 While i < WordProcesses.Length pId(i) = WordProcesses(i).Id i += 1 End While Wapp = CreateObject("word.Application") Wapp.Visible = WordVisible WordProcesses = Process.GetProcessesByName("Winword") Dim j As Int16 Dim bool As Boolean For j = 0 To WordProcesses.Length - 1 Dim k As Int16 bool = False For k = 0 To pId.Length - 1 If WordProcesses(j).Id = pId(k) Then bool = True Exit For End If Next If bool = False Then LastOpenProcId = WordProcesses(j).Id myWordProcess = Process.GetProcessById(LastOpenProcId) Exit For End If Next End If Catch ex As Exception MsgBox(ex.Message) End Try End FunctionWaitForExit corresponde ao tempo (milisegundos) de espera para efectuar o Kill ao nosso processo no caso de Wapp.Quit falharFunction CloseApp(Optional ByVal WaitForExit As Integer = 20000) Try If WApp Is Nothing = False Then ResetFunction = False If WaitForExit <= 0 Then WaitForExit = 20000 StopTimer.Interval = WaitForExit StopTimer.Start() While WApp.BackgroundPrintingStatus = 1 Or WApp.BackgroundSavingStatus = 1 If ResetFunction = True Then Exit While : StopTimer.Stop() End While WApp.Quit() WApp = Nothing myWordProcess.WaitForExit(5000) If Me.Exists = True Then myWordProcess.Kill() End If End If Catch ex As Exception MsgBox(ex.Message) End TryEnd FunctionQuando tento fazer Papp = CreateObject("pdf.Application") dá-me um erro: "Cannot create ActiveX component"...Alguém sabe como posso fechar só o pdf que pretendo??

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.