Yo lo resolvi de la siguiente manera. Quiza no sea muy prolijo pero me funciono.
1 - La idea es almacenar la referencia al Proceso en el que corre la isntancia
de Excel
'Memory Proc reference
Dim oProc As System.Diagnostics.Process
2 - En el momento de crear la instancia Excel mandamos a obtener la referecnia
oExcel = New Excel.Application
'Get the Recent Excel Instance
Call GetProc()
3 - Este seria el GetProc() en el que tomamos el ultimo proceso creado
(asumimos que es nuestro Excel)
Private Sub GetProc()
Dim dStartTime As DateTime = Convert.ToDateTime("01-01-2006 00:00:00")
Dim oProcs() As System.Diagnostics.Process
Dim i As Integer
oProcs = System.Diagnostics.Process.GetProcessesByName("EXCEL")
For i = 0 To oProcs.Length - 1
If dStartTime < oProcs(i).StartTime() Then
dStartTime = oProcs(i).StartTime()
oProc = oProcs(i)
End If
Next
End Sub
4 - Viendo esto un poco yo tomaria el valor de la variable dStartTime instantes
antes de ejecutar 'oExcel = New Excel.Application' (fé de errata)
5 - Teniendo el proceso referenciado, podrémos entonces hacer lo siguiente. (En
un Finalize)
Call KillProc()
Siendo KillProc()
Private Sub KillProc()
oProc.Kill()
End Sub
Saludos y espero que les sirva. Si alguien aporta algo mejor pues bienvenido
sea...
CarlosMag
From: [email protected]: [email protected]: [vbnet] ExcelDate:
Thu, 18 Dec 2008 11:02:06 -0200
Mauro:
Yo en lo personal lamentablemente ya renegué con eso y mucho pero no encontré
forma de solucionarlo, sigue ahí cada tanto explotando el server porque se
queda sin memoria cuando muchos reportes se exportan seguido. Tené en cuenta
que si bien el proceso queda, un par de horas después (por lo menos en mi caso)
se mata solo.
Si alguien encuentra el “key” de la cuestión, me sumo al agradecimiento.
Saludos.
García Máximo
Socio MUG Nº 2275
[email protected]
From: [email protected] [mailto:[email protected]] On Behalf Of Mauro AndreaSent:
Jueves, 18 de Diciembre de 2008 11:45 a.m.To: vbnet List MemberSubject: [vbnet]
Excel
Hola a todos....
Les comento, estoy trabajando en una aplicación que exporta de forma automática
datos a una planilla en Excel y después envía la planilla zipeada por mail.
El tema es que a pesar de guardar el libro, cerrarlo y cerrar el Excel con su
método "quit" éste sigue quedando en memoria por lo que tengo que ejecutar un
comando para que mate el proceso que quedó en la memoria....
Alguno ya renegó con ésto y me puede pasar algo de info?
Gracias.
Mauro AndreaNewdev S.R.L. - Tecnología InformáticaNueva dirección: Rioja 1151
Piso 3 Of. 3Tel. (0341) 530-0572 / 425-9808MSN:
[email protected]
_________________________________________________________________
Chateá mientras compartís los mejores videos. Descubrí Messenger TV.
http://messengertv.msn.com/mkt/es-ar/default.htm?appID=20581609