elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Como detectar que se ha abierto una ventana?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como detectar que se ha abierto una ventana?  (Leído 1,757 veces)
icisneros
GNU/Linux
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.296



Ver Perfil WWW
Como detectar que se ha abierto una ventana?
« 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!!


En línea

BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.006


Ver Perfil
Re: Como detectar que se ha abierto una ventana?
« Respuesta #1 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()
AppActivate "Foro Libre"
SendKeys "{Enter}"
End Sub

Un saludo



En línea

icisneros
GNU/Linux
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.296



Ver Perfil WWW
Re: Como detectar que se ha abierto una ventana?
« Respuesta #2 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!!
En línea

BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.006


Ver Perfil
Re: Como detectar que se ha abierto una ventana?
« Respuesta #3 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
While forms.Count > 1
    i = 0
While forms(i).Caption = Me.Caption
         i = i + 1
    Wend
 Unload forms(i)
Wend
Unload Me
End

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

En línea

icisneros
GNU/Linux
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.296



Ver Perfil WWW
Re: Como detectar que se ha abierto una ventana?
« Respuesta #4 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!!
En línea

NYlOn


Desconectado Desconectado

Mensajes: 842


OOOOHHHHHH, TARAGÜIIII xDDDDDD


Ver Perfil WWW
Re: Como detectar que se ha abierto una ventana?
« Respuesta #5 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
Private Const WM_SYSCOMMAND = &H112
Private Const SC_CLOSE = &HF060&


Call SendMessage("VENTANA", WM_SYSCOMMAND, SC_CLOSE, ByVal 0&)

Saludos.-
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como llenar la ventana de mensajes? xD
Programación Visual Basic
x64core 9 3,932 Último mensaje 16 Julio 2011, 04:33 am
por seba123neo
¿Cómo crear ventana en C++?
Programación C/C++
avmiitxe 1 8,690 Último mensaje 20 Febrero 2012, 20:30 pm
por Eternal Idol
WPE PRO abierto como administrador no capta paquetes
Dudas Generales
33boy33 2 2,594 Último mensaje 21 Junio 2015, 23:48 pm
por 33boy33
Problema Guitar Pro 7.5 (cierra la ventana pero GP7 sigue abierto)
Software
okik 0 1,572 Último mensaje 22 Febrero 2019, 12:46 pm
por okik
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines