Foros del Web » Programación para mayores de 30 ;) » .NET »

Matar proceso excel en C#

Estas en el tema de Matar proceso excel en C# en el foro de .NET en Foros del Web. Hola amigos estoy utilizando la clase Excel.Application que lo que hace es crear una aplicacion en excel. Esto lo hago para crear un excel , ...
  #1 (permalink)  
Antiguo 01/10/2005, 11:58
 
Fecha de Ingreso: octubre-2004
Mensajes: 211
Antigüedad: 19 años, 6 meses
Puntos: 2
Sonrisa Matar proceso excel en C#

Hola amigos estoy utilizando la clase Excel.Application que lo que hace es crear una aplicacion en excel.

Esto lo hago para crear un excel , dibujar en el... cosas asi, bien el problema es que despues de usarlo o de ejecutarlo 3 o 4 veces , se me ocurre mirar el Administrador de tareas y claro , habia 3 o 4 processos EXCEL.exe en ejecucion,

Me gustaria matar el proceso, una forma sencilla es recorrer todos los procesos y mirar si el nombre es EXCEL.exe y matarlo, pero eso es ser muy animal, no habrá otra forma?

me explico el objeto Excel.Application = new ExcelApplication() ( lo estoy haciendo de memoria no se si era asi ) no devolverá un identificador para matarlo?

Saludos
  #2 (permalink)  
Antiguo 02/10/2005, 06:51
 
Fecha de Ingreso: octubre-2004
Mensajes: 211
Antigüedad: 19 años, 6 meses
Puntos: 2
Bueno veo q no estais metidos en el tema, aqui os dejo la respuesta

Esta funcion te devuelve el identificador del proceso EXCEL siempre y cuando no mostreis el formulario del EXCEL el parametro que le teneis q pasar en nameProcess es el nombre del proceso en mi caso 'EXCEL'

Código:
	private int iGetIDProcces(string nameProcces)
		{

			try
			{
				Process[] asProccess = Process.GetProcessesByName( nameProcces );

				foreach( Process pProccess in asProccess )
				{
					if( pProccess.MainWindowTitle == "" )
					{
						return pProccess.Id;
					}
				}

				return -1;
			}
			catch(Exception ex)
			{
				return -1;
			}
		}

obteneis el identificador del processo y lo matais tal que así



Código:

int idproc = GetIDProcces("EXCEL");

if( idproc != -1 )
{
	Process.GetProcessById( idproc ).Kill();
}

la información la obtuve de la siguiente pagina,

http://www.programacion.net/foros/32/msg/123041/


Saludos.
  #3 (permalink)  
Antiguo 02/10/2005, 09:33
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Una forma más limpia de hacer eso es liberar los objetos COM:
http://support.microsoft.com/default...b;en-us;317109

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #4 (permalink)  
Antiguo 13/01/2009, 14:05
 
Fecha de Ingreso: abril-2007
Mensajes: 19
Antigüedad: 17 años
Puntos: 0
Respuesta: Matar proceso excel en C#

Veo que se sigue presentando este bug o error o que se yo que sea, ya es 2009 y sigue funcionando mal, con este ejemplo funciona muchas gracias.

aunque sea de la manera limpia o elegante no funciona, solo a fuerzas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:11.