Problemi Office Interop con metodo Quit

giovedì 02 novembre 2006 - 11.11

contiello Profilo | Senior Member

Salve ragazzi ho il seguente problema....
Ho una semplice form che ha due pulsanti
uno btnWord lancia le seguenti due istruzioni:

Dim appWord As New Word.Application

appWord.Quit()

come si puo' ben vedere queste istruzioni creano un'applicazione word e poi la chiudono difatti nel task manager si vede apparire il processo WinWord.exe e poi sul metodo quit il processo viene distrutto. fin qui tutto ok

per excel il risultato delle stesse operazioni è differente e mi spiego..

altro pulsante btnExce
su questo vengono eseguite le seguenti due istruzioni

Dim appExcel As New Excel.Application

appExcel.Quit()

allo stesso modo quando eseguo la prima istruzione viene creata una applicazione Excel(processo EXCEL.EXE nel task manager) ,ma quando utilizzo poi il metodo quit il processo non sparisce nel task manager lo fa solo quando chiudo l'intera applicazione vb.net che l'ha creato...

a cosa è dovuta questa differenza tra Word ed Excel??

avevo in parte risolto il problema con la seguente istruzione
dopo aver lanciato il metodo Quit

System.Runtime.InteropServices.Marshal.ReleaseComObject(appExcel)

con questa istruzione finalmente il processo EXCEL.EXE sparisce dal task manager

il problema sorge quando comincio ad operare sul foglio excel
in pratica semplicemente scrivo il seguente codice

Dim Percorso As String = "D:\provaexcel\prova.xls"
Dim PivotTabella As New Excel.Application
Dim XlwbDati As Excel.Workbook
Dim oMissing = System.Reflection.Missing.Value
XlwbDati = PivotTabella.Workbooks.Open(Percorso, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing)
XlwbDati.Close()

PivotTabella.Quit()

System.Runtime.InteropServices.Marshal.ReleaseComObject(PivotTabella)
PivotTabella = Nothing
XlwbDati = Nothing

non appena ho aggiunto l'oggetto xlwbdati il processo EXCEL.EXE non sparisce dal task manager
ho provato a disallocarlo in tutti i modi perchè chiaramente adesso il problema è che l'oggetto PivotTabella non riesce a "scrollarsi di dosso l'oggetto XlwbDati"

Grazie per l'aiuto

GRAZIE CMQ


Brainkiller Profilo | Guru

Ciao Contiello,
posto qui il Link all'altro Thread in modo che se qualcuno capita trova la risposta:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=11452

Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5