Título: Como detectar que se ha abierto una ventana? Publicado por: icisneros en 29 Marzo 2006, 20:20 pm Como puedo detectar que se ha abierto una ventana nueva en el sistema, o un popup de error, para entonces enviar yo una sucesion de teclas automaticamente?
Lo que yo quiero hacer es dejar el pc como esta, y que si sale algun error de alguna aplicacion directamente mande la tecla {enter} para que sea como hacer click en aceptar y se cierre ese error... Saludos!! Título: Re: Como detectar que se ha abierto una ventana? Publicado por: BenRu en 29 Marzo 2006, 20:39 pm Con AppActivate puedes hacerlo.
Despues para que pulse enter, SendKeys "{ENTER}" No se si funcionara asi, creo que si...al menos hace el intento... Código: Private Sub Form_Load() Un saludo Título: Re: Como detectar que se ha abierto una ventana? Publicado por: icisneros en 29 Marzo 2006, 21:52 pm Pues la verdad es que es mucho más facil así, yo lo he hecho llamando a la API porque de la forma que tu dices te busca ventanas de aplicaciones pero las ventanas de error del sistema no las encuentra. La funcion de la API que he usado es:
Código: FindWindow Ahora otra cosa por curiosidad, conociendo el handle de la ventana como puedo hacer para cerrarla? Saludos!! Título: Re: Como detectar que se ha abierto una ventana? Publicado por: BenRu en 29 Marzo 2006, 22:03 pm Pues la verdad es que es mucho más facil así, yo lo he hecho llamando a la API porque de la forma que tu dices te busca ventanas de aplicaciones pero las ventanas de error del sistema no las encuentra. La funcion de la API que he usado es: Código: FindWindow Saludos!! Quizas esto te sirva para algo, o para sacarle algo: Cerrar todos los formularios y aplicacion: Dentro de un Form_Unload() Código: Dim i as integer Citar Ahora otra cosa por curiosidad, conociendo el handle de la ventana como puedo hacer para cerrarla? Pues con el mismo sendkeys, en vez de enviar Enter, envias Alt + F4.. Prueba con esto, que si recuerdo no mal, era asi Código: Sendkeys "\%{F4}" O si no, prueba poniendole delante WshShell Código: WshShell.Sendkeys "\%{F4}" Un saludo Título: Re: Como detectar que se ha abierto una ventana? Publicado por: icisneros en 29 Marzo 2006, 22:37 pm Gracias BenRu hacía tiempo que no trasteaba con VB y me ha costado... :P
Ya me funciona todo como quería, gracias de nuevo. Saludos!! Título: Re: Como detectar que se ha abierto una ventana? Publicado por: NYlOn en 30 Marzo 2006, 01:14 am Sino queres utilizar el SendKeys (por el echo de que puede aparecer otra ventana adelante, etc) podes usar la API SendMessage de la siguiente forma:
Código: Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Saludos.- |