Cerra aplicación

07/10/2004 - 14:57 por Lars | Informe spam
Hola a todos,

Estoy intentando cerrar una aplicación y, estoy utilizando estas
instrucciones:

Process prx = Process.GetProcessById (processId);
prx.CloseMainWindow ();
prx.WaitForExit ();

El problema es que para poderse cerrar la aplicación es necesario pulsar un
botón de una toolbar. En caso de no pulsarse ese botón, aparece un
MessageBox.

La pregunta es, ¿cómo pueso simular la pulsación de ese botón desde otra
aplicación?

Gracias por la ayuda.

Un saludo a todos.

Preguntas similare

Leer las respuestas

#1 Angel J. Hernández
07/10/2004 - 19:36 | Informe spam
Bueno para cerrar la aplicación tienes otros enfoques además del que
mencionas. A continuación te enumero 3 de ellos:

1-. Obtener los procesos en ejecución mediante el método
System.Diagnostics.Process.GetProcesses() este de devuelve un vector con los
procesos. Puedes recorrer dicho vector y comparar el ID que tienes con el ID
del proceso seleccionado mientras iteras. Llamas al método Kill y listo.
Tienes otras propiedades como MainModule, MainWindowHandle que podrían ser
de tu utilidad.

2-. Este es similar al primero... Podrías usar WMI (obteniendo una instancia
de winmgmts://) después obtener las instancias de los procesos en ejecución
a través del método InstancesOf("WIN32_PROCESS") e iterar por los procesos.
Usar el método Terminate() para cerrar el que te interesa (Posee una
propiedad Name que puedes usar para comparar).

3-. Puedes enviar un mensaje WM_CLOSE al procedimiento de ventana del
proceso que quieres cerrar. Puedes usar la función SendMessage o
PostMessage. Esto es haciendo uso del API.


Saludos,

Angel J. Hernández M.
MCSD.NET

http://groups.msn.com/desarrolladoresmiranda


"Lars" escribió en el mensaje
news:%
Hola a todos,

Estoy intentando cerrar una aplicación y, estoy utilizando estas
instrucciones:

Process prx = Process.GetProcessById (processId);
prx.CloseMainWindow ();
prx.WaitForExit ();

El problema es que para poderse cerrar la aplicación es necesario pulsar
un
botón de una toolbar. En caso de no pulsarse ese botón, aparece un
MessageBox.

La pregunta es, ¿cómo pueso simular la pulsación de ese botón desde otra
aplicación?

Gracias por la ayuda.

Un saludo a todos.


Respuesta Responder a este mensaje
#2 Lars
08/10/2004 - 11:38 | Informe spam
Muchas gracias por la respuesta pero, me temo que solamente esto no sea
posible.

El método Kill por si solo, no puede utilizarse porque se puede producir una
perdida de datos.
Si yo cierro mandando WM_CLOSE a la ventana o similares, la aplicación
muestra un MessageBox y no se cierra. Solo permite cerrarse si antes hemos
pulsado un determinado botón de una toolbar.

¿cómo puedo similar la pulsación de un botón de una toolbar?

Un saludo.



"Angel J. Hernández" escribió en el mensaje
news:
Bueno para cerrar la aplicación tienes otros enfoques además del que
mencionas. A continuación te enumero 3 de ellos:

1-. Obtener los procesos en ejecución mediante el método
System.Diagnostics.Process.GetProcesses() este de devuelve un vector con


los
procesos. Puedes recorrer dicho vector y comparar el ID que tienes con el


ID
del proceso seleccionado mientras iteras. Llamas al método Kill y listo.
Tienes otras propiedades como MainModule, MainWindowHandle que podrían ser
de tu utilidad.

2-. Este es similar al primero... Podrías usar WMI (obteniendo una


instancia
de winmgmts://) después obtener las instancias de los procesos en


ejecución
a través del método InstancesOf("WIN32_PROCESS") e iterar por los


procesos.
Usar el método Terminate() para cerrar el que te interesa (Posee una
propiedad Name que puedes usar para comparar).

3-. Puedes enviar un mensaje WM_CLOSE al procedimiento de ventana del
proceso que quieres cerrar. Puedes usar la función SendMessage o
PostMessage. Esto es haciendo uso del API.


Saludos,

Angel J. Hernández M.
MCSD.NET

http://groups.msn.com/desarrolladoresmiranda


"Lars" escribió en el mensaje
news:%
> Hola a todos,
>
> Estoy intentando cerrar una aplicación y, estoy utilizando estas
> instrucciones:
>
> Process prx = Process.GetProcessById (processId);
> prx.CloseMainWindow ();
> prx.WaitForExit ();
>
> El problema es que para poderse cerrar la aplicación es necesario pulsar
> un
> botón de una toolbar. En caso de no pulsarse ese botón, aparece un
> MessageBox.
>
> La pregunta es, ¿cómo pueso simular la pulsación de ese botón desde otra
> aplicación?
>
> Gracias por la ayuda.
>
> Un saludo a todos.
>
>


Respuesta Responder a este mensaje
#3 Angel J. Hernández
08/10/2004 - 15:48 | Informe spam
Ah... tu deseas que no aparezca mensajes ni nada por el estilo al cerrar la
aplicación. Una opción sería interceptar el procedimiento de ventana de la
aplicación que deseas cerrar. Es lo que se me ocurre.

Saludos

"Lars" escribió en el mensaje
news:
Muchas gracias por la respuesta pero, me temo que solamente esto no sea
posible.

El método Kill por si solo, no puede utilizarse porque se puede producir
una
perdida de datos.
Si yo cierro mandando WM_CLOSE a la ventana o similares, la aplicación
muestra un MessageBox y no se cierra. Solo permite cerrarse si antes hemos
pulsado un determinado botón de una toolbar.

¿cómo puedo similar la pulsación de un botón de una toolbar?

Un saludo.



"Angel J. Hernández" escribió en el mensaje
news:
Bueno para cerrar la aplicación tienes otros enfoques además del que
mencionas. A continuación te enumero 3 de ellos:

1-. Obtener los procesos en ejecución mediante el método
System.Diagnostics.Process.GetProcesses() este de devuelve un vector con


los
procesos. Puedes recorrer dicho vector y comparar el ID que tienes con el


ID
del proceso seleccionado mientras iteras. Llamas al método Kill y listo.
Tienes otras propiedades como MainModule, MainWindowHandle que podrían
ser
de tu utilidad.

2-. Este es similar al primero... Podrías usar WMI (obteniendo una


instancia
de winmgmts://) después obtener las instancias de los procesos en


ejecución
a través del método InstancesOf("WIN32_PROCESS") e iterar por los


procesos.
Usar el método Terminate() para cerrar el que te interesa (Posee una
propiedad Name que puedes usar para comparar).

3-. Puedes enviar un mensaje WM_CLOSE al procedimiento de ventana del
proceso que quieres cerrar. Puedes usar la función SendMessage o
PostMessage. Esto es haciendo uso del API.


Saludos,

Angel J. Hernández M.
MCSD.NET

http://groups.msn.com/desarrolladoresmiranda


"Lars" escribió en el mensaje
news:%
> Hola a todos,
>
> Estoy intentando cerrar una aplicación y, estoy utilizando estas
> instrucciones:
>
> Process prx = Process.GetProcessById (processId);
> prx.CloseMainWindow ();
> prx.WaitForExit ();
>
> El problema es que para poderse cerrar la aplicación es necesario
> pulsar
> un
> botón de una toolbar. En caso de no pulsarse ese botón, aparece un
> MessageBox.
>
> La pregunta es, ¿cómo pueso simular la pulsación de ese botón desde
> otra
> aplicación?
>
> Gracias por la ayuda.
>
> Un saludo a todos.
>
>






Respuesta Responder a este mensaje
#4 Octavio Hernandez
09/10/2004 - 11:11 | Informe spam
¿Y si en el evento Closing del formulario llamas al delegado que gestiona
el evento de pulsación sobre la barra?
Es solo una idea.

Slds - Octavio

"Lars" escribió en el mensaje
news:
Muchas gracias por la respuesta pero, me temo que solamente esto no sea
posible.

El método Kill por si solo, no puede utilizarse porque se puede producir


una
perdida de datos.
Si yo cierro mandando WM_CLOSE a la ventana o similares, la aplicación
muestra un MessageBox y no se cierra. Solo permite cerrarse si antes hemos
pulsado un determinado botón de una toolbar.

¿cómo puedo similar la pulsación de un botón de una toolbar?

Un saludo.



"Angel J. Hernández" escribió en el mensaje
news:
> Bueno para cerrar la aplicación tienes otros enfoques además del que
> mencionas. A continuación te enumero 3 de ellos:
>
> 1-. Obtener los procesos en ejecución mediante el método
> System.Diagnostics.Process.GetProcesses() este de devuelve un vector con
los
> procesos. Puedes recorrer dicho vector y comparar el ID que tienes con


el
ID
> del proceso seleccionado mientras iteras. Llamas al método Kill y listo.
> Tienes otras propiedades como MainModule, MainWindowHandle que podrían


ser
> de tu utilidad.
>
> 2-. Este es similar al primero... Podrías usar WMI (obteniendo una
instancia
> de winmgmts://) después obtener las instancias de los procesos en
ejecución
> a través del método InstancesOf("WIN32_PROCESS") e iterar por los
procesos.
> Usar el método Terminate() para cerrar el que te interesa (Posee una
> propiedad Name que puedes usar para comparar).
>
> 3-. Puedes enviar un mensaje WM_CLOSE al procedimiento de ventana del
> proceso que quieres cerrar. Puedes usar la función SendMessage o
> PostMessage. Esto es haciendo uso del API.
>
>
> Saludos,
>
> Angel J. Hernández M.
> MCSD.NET
>
> http://groups.msn.com/desarrolladoresmiranda
>
>
> "Lars" escribió en el mensaje
> news:%
> > Hola a todos,
> >
> > Estoy intentando cerrar una aplicación y, estoy utilizando estas
> > instrucciones:
> >
> > Process prx = Process.GetProcessById (processId);
> > prx.CloseMainWindow ();
> > prx.WaitForExit ();
> >
> > El problema es que para poderse cerrar la aplicación es necesario


pulsar
> > un
> > botón de una toolbar. En caso de no pulsarse ese botón, aparece un
> > MessageBox.
> >
> > La pregunta es, ¿cómo pueso simular la pulsación de ese botón desde


otra
> > aplicación?
> >
> > Gracias por la ayuda.
> >
> > Un saludo a todos.
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida