FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Mandar pulsaciones de teclas a un TWebBrowser
Hola, les explico mi problema
Tengo una aplicación que Llama a una página de un HW que monitorea el spam, llama la página, se autentifica, llama a otrá página y empieza a hacer refresh cada cierto tiempo registrado las diferencias entre cada refresco. Todo esta bien la primera vez, ya que las pulsaciones de teclas las tengo dentro de un timer activo que paro inmediatamente cuando detecto que el código fuente ya no es el de la página de login. Lo puse en un timer por que vi que si mando las pulsaciones desde un evento de botón, el foco lo tiene la aplicación Delphi y no la página web, así que las teclas no llegan al control de la página. Toda funciona bien por ocho horas, tiempo que el HW por si mismo cierra la aplicación y me regresa a la página de lógin. Si no se tocara para nada el servidor, se volvería a autentificar sin problemas ya que cuando cambia el fuente llamo otra vez a el timer que manda las pulsaciones, pero con el simple hecho de minimizar la aplicación hace que el foco ya no este en el ActiveX del TWebBrowser y las pulsaciones no llegan al control de la página, entonces se queda ciclado intentando loguearse mandando teclazos que nunca llegan a quien deben. He intentado mandar el foco a la página con un simple WebBrowser.SetFocus y nada; tampoco colocando el contenido del <TITLE> en la función AppActivate. Se me han acabado las ideas. ¿Puede alguien orientarme? |
#2
|
|||
|
|||
Aparentemente el problema era darle un tiempo para que se cargara la página en el TWebBrowser.
Con una secuencia como la de abajo, hasta ahora parece que funciona. Código:
RefreshClick(Sender); <- Refrescar la página para darle el foco al ActiveX Application.ProcessMessages; sleep(3000); <-Esta es la pausa que necesitaba WebBrowser1.SetFocus; <- Sin esto no manda las teclas al control de la página Application.ProcessMessages; SendKeys('login{TAB}password{ENTER}', False) ; Saludos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Enviar caracteres o pulsaciones de teclas a otra aplicación no Delphi | Faust | API de Windows | 9 | 28-12-2021 11:43:43 |
cambiar teclas de cursor up down por o tras teclas en un TDBGrid | lococaceres | Conexión con bases de datos | 1 | 13-07-2007 07:01:40 |
capturar pulsaciones de teclado | i_berbeu | C++ Builder | 3 | 08-02-2006 23:00:35 |
Mandar teclas via WM AYUDA!! | marceloalegre | Varios | 1 | 30-09-2005 18:27:03 |
Mandar teclas a una ventana de comandos | 1501 | API de Windows | 1 | 22-12-2004 01:10:40 |
|