Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-03-2008
cestradar cestradar is offline
Miembro
 
Registrado: ene 2008
Posts: 24
Poder: 0
cestradar Va por buen camino
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?
Responder Con Cita
  #2  
Antiguo 28-03-2008
cestradar cestradar is offline
Miembro
 
Registrado: ene 2008
Posts: 24
Poder: 0
cestradar Va por buen camino
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) ;
Espero que con esto quede, aunque si alguien sabe algún otro método le agradecería comentármelo.

Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 21:37:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi