Manejar aplicaciones Windows con C#

10/08/2004 - 05:32 por Nathaly_ec | Informe spam
Buenas noches quisiera saber si alguno de ustedes conoce
como a traves de un pequeño programa puedo detectar que
aplicaciones (word, excel, notepad, paint, etc) esta
levantando el usuario en su estacion de trabajo...
He revisado como trabajar con hook y es una muy buena
alternativa.. ya que parte de mi aplicacion tiene que
cerrarle el programa al usuario si esta usando algo que
yo defina que puede o no usar..pero el problema con hook
es que puedo cerrar la ventana pero no se que ventana es
la que estoy cerrando...la estructura de mensajes no me
indica quien emitio ese mensaje para si yo poder
procesarla...

He revisado tambien la clases process para ver si podia
identificar el nombre del proceso principal de la
aplicacion para asi saber el nombre del .exe (que seria
el nombre de la aplicacion)pero no he logrado capturar
aun el ID o el nombre del proceso que se levanta al
ejecutar que se yo "notepad" por ejemplo

Esperando alguien me pueda ayudar, me despido dandoles
las gracias de antemano..

Preguntas similare

Leer las respuestas

#1 Anonimo
10/08/2004 - 17:48 | Informe spam
Garcias por lo que mencionas... es muy cierto me parece
que la api que hace eso es FINDWINDOWS()... el problema
de esto es que tengo que escribir a esta funcion el
nombre de la aplicacion
y a mas de esto creo que debo de enumerar las ventanas
para asi poder localizarla... la verdad esto enumeracion
aun no la entiendo bien... pero el problema de utilizar
esa api es que tendria que yo conocer que apliaciones hay
en la maquina y una por una ir buscandola... creo que
seria asi...
la aplicacion debe de ser dinámica debido a que yo no se
que aplicaciones estan instaladas o no.. solo tengo un
pequeño archivo que alguien lleno diciendome que
apliaciones tiene acceso que usuario

Como menciono estoy trabajando a nivel de mensajes de
ventanas(Hook)y el no saber que ventana es la que
envia el mensaje es mi principal y critico problema...

Puedes usar el api de Windows. Yo lo uso para detectar
si tengo una copia o clon de mi mismo.

Win32 tiene una función para encontrar una ventana (ya
sea por nombre de clase o texto), y una vez con esa id,
puedes cerrarla, por ejemplo.

Ahora no tengo el código aqui, pero seguro que algun
compañero lo pondrá.

Buenas noches quisiera saber si alguno de ustedes




conoce
como a traves de un pequeño programa puedo detectar que
aplicaciones (word, excel, notepad, paint, etc) esta
levantando el usuario en su estacion de trabajo...
He revisado como trabajar con hook y es una muy buena
alternativa.. ya que parte de mi aplicacion tiene que
cerrarle el programa al usuario si esta usando algo que
yo defina que puede o no usar..pero el problema con




hook
es que puedo cerrar la ventana pero no se que ventana




es
la que estoy cerrando...la estructura de mensajes no me
indica quien emitio ese mensaje para si yo poder
procesarla...

He revisado tambien la clases process para ver si podia
identificar el nombre del proceso principal de la
aplicacion para asi saber el nombre del .exe (que seria
el nombre de la aplicacion)pero no he logrado capturar
aun el ID o el nombre del proceso que se levanta al
ejecutar que se yo "notepad" por ejemplo

Esperando alguien me pueda ayudar, me despido dandoles
las gracias de antemano..
.



.

Respuesta Responder a este mensaje
#2 Zephryn Xirdal
10/08/2004 - 18:54 | Informe spam
Pues entonces, periódicamente (cada 10 segundos, por ejemplo), vas
recorriendo todas las ventanas abiertas mediante FindWindow, y si alguna
está en tu lista, la matas y ya está.


escribió en el mensaje
news:377801c47ef1$713eb690$
Garcias por lo que mencionas... es muy cierto me parece
que la api que hace eso es FINDWINDOWS()... el problema
de esto es que tengo que escribir a esta funcion el
nombre de la aplicacion
y a mas de esto creo que debo de enumerar las ventanas
para asi poder localizarla... la verdad esto enumeracion
aun no la entiendo bien... pero el problema de utilizar
esa api es que tendria que yo conocer que apliaciones hay
en la maquina y una por una ir buscandola... creo que
seria asi...
la aplicacion debe de ser dinámica debido a que yo no se
que aplicaciones estan instaladas o no.. solo tengo un
pequeño archivo que alguien lleno diciendome que
apliaciones tiene acceso que usuario

Como menciono estoy trabajando a nivel de mensajes de
ventanas(Hook)y el no saber que ventana es la que
envia el mensaje es mi principal y critico problema...

Puedes usar el api de Windows. Yo lo uso para detectar
si tengo una copia o clon de mi mismo.

Win32 tiene una función para encontrar una ventana (ya
sea por nombre de clase o texto), y una vez con esa id,
puedes cerrarla, por ejemplo.

Ahora no tengo el código aqui, pero seguro que algun
compañero lo pondrá.

Buenas noches quisiera saber si alguno de ustedes




conoce
como a traves de un pequeño programa puedo detectar que
aplicaciones (word, excel, notepad, paint, etc) esta
levantando el usuario en su estacion de trabajo...
He revisado como trabajar con hook y es una muy buena
alternativa.. ya que parte de mi aplicacion tiene que
cerrarle el programa al usuario si esta usando algo que
yo defina que puede o no usar..pero el problema con




hook
es que puedo cerrar la ventana pero no se que ventana




es
la que estoy cerrando...la estructura de mensajes no me
indica quien emitio ese mensaje para si yo poder
procesarla...

He revisado tambien la clases process para ver si podia
identificar el nombre del proceso principal de la
aplicacion para asi saber el nombre del .exe (que seria
el nombre de la aplicacion)pero no he logrado capturar
aun el ID o el nombre del proceso que se levanta al
ejecutar que se yo "notepad" por ejemplo

Esperando alguien me pueda ayudar, me despido dandoles
las gracias de antemano..
.



.

Respuesta Responder a este mensaje
#3 Octavio Hernandez
10/08/2004 - 22:20 | Informe spam
Hola,

Yo creo que más que cerrar ventanas lo suyo sería matar los procesos que no
quieres que el usuario ejecute:
using System.Diagnostics;

foreach (Process pro in Process.GetProcesses())

{

if (pro.ProcessName.ToUpper().Contains("EXCEL"))

pro.Kill();

}

Slds - Octavio


"Nathaly_ec" escribió en el mensaje
news:330001c47e8a$aaf9a2d0$
Buenas noches quisiera saber si alguno de ustedes conoce
como a traves de un pequeño programa puedo detectar que
aplicaciones (word, excel, notepad, paint, etc) esta
levantando el usuario en su estacion de trabajo...
He revisado como trabajar con hook y es una muy buena
alternativa.. ya que parte de mi aplicacion tiene que
cerrarle el programa al usuario si esta usando algo que
yo defina que puede o no usar..pero el problema con hook
es que puedo cerrar la ventana pero no se que ventana es
la que estoy cerrando...la estructura de mensajes no me
indica quien emitio ese mensaje para si yo poder
procesarla...

He revisado tambien la clases process para ver si podia
identificar el nombre del proceso principal de la
aplicacion para asi saber el nombre del .exe (que seria
el nombre de la aplicacion)pero no he logrado capturar
aun el ID o el nombre del proceso que se levanta al
ejecutar que se yo "notepad" por ejemplo

Esperando alguien me pueda ayudar, me despido dandoles
las gracias de antemano..
Respuesta Responder a este mensaje
#4 Nathaly_ec
11/08/2004 - 18:23 | Informe spam
Gracias Octavio por tu respuesta pero como comente:
1.- no se que aplicaciones pueden o no estar instaladas..
asi que es poco optimo una instruccion donde tenga que
escribir el nombre de la aplicacion
2.- Trabajar a nivel de procesos es algo que pense, mi
problema se reflejo cuando me di cuenta que matar un
proceso no es suficiente ya que hay aplicaciones que
levantan 2 o hasta 3 procesos diferentes y yo no se como
se llaman.

De todas formas gracias... y porfa si alguien tine otra
idea se lo agradeceria muchisimo...


Hola,

Yo creo que más que cerrar ventanas lo suyo sería matar


los procesos que no
quieres que el usuario ejecute:
using System.Diagnostics;

foreach (Process pro in Process.GetProcesses())

{

if (pro.ProcessName.ToUpper().Contains("EXCEL"))

pro.Kill();

}

Slds - Octavio


"Nathaly_ec" escribió en el


mensaje
news:330001c47e8a$aaf9a2d0$
Buenas noches quisiera saber si alguno de ustedes conoce
como a traves de un pequeño programa puedo detectar que
aplicaciones (word, excel, notepad, paint, etc) esta
levantando el usuario en su estacion de trabajo...
He revisado como trabajar con hook y es una muy buena
alternativa.. ya que parte de mi aplicacion tiene que
cerrarle el programa al usuario si esta usando algo que
yo defina que puede o no usar..pero el problema con hook
es que puedo cerrar la ventana pero no se que ventana es
la que estoy cerrando...la estructura de mensajes no me
indica quien emitio ese mensaje para si yo poder
procesarla...

He revisado tambien la clases process para ver si podia
identificar el nombre del proceso principal de la
aplicacion para asi saber el nombre del .exe (que seria
el nombre de la aplicacion)pero no he logrado capturar
aun el ID o el nombre del proceso que se levanta al
ejecutar que se yo "notepad" por ejemplo

Esperando alguien me pueda ayudar, me despido dandoles
las gracias de antemano..


.

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