Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-01-2012
Furyxe Furyxe is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 34
Poder: 0
Furyxe Va por buen camino
Realizar acciones con la ventana del programa inactiva

Hola a todos.

Vengo a ver si alguien puede ayudarme. Explicare la situación.

Yo he creado un programa, que envía una serie de "Teclas" a un webbrowser cada XX minutos. Esas "Teclas" son utilizadas para automatizar procesos.
El problema es, que para que el programa envie las teclas, y el Web Browser las reciba y ejecute, el programa tiene que estar como ventana activa.
Impidiéndome realizar ninguna otra acción de mientras en el ordenador, como por ejemplo jugar.

Lo que yo quiero hacer, es que el programa sea capaz de realizar las mismas acciones, pero cuando la ventana no esté activa.

Asi podría minimizarlo al lado del reloj de windows, y el programa seguiría realizando las acciones cada XX minutos.

Ha alguien se le ocurre alguna solucion?

Gracias ^^
Responder Con Cita
  #2  
Antiguo 23-01-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
A veces pensamos en un programa como la "ventana activa" tal y como tú comentas, y realmente a veces no es así. Me explico. Seguramente, el componente que recibe las teclas no es "el Browser", el "browser" es la aplicación y dentro de esta aplicación hay muchos componentes y cada uno de ellos con un ID (Handle). Aunque la aplicación recibe las teclas, en realidad éstas van a parar a unos de los componentes concretos que hay en esa aplicación.

No se si funcionará, pero podrías intentar acceder al handle del componente que relamente recibe las teclas y enviárselas a ese.

No se si me explico...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 23-01-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No sé qué es lo que estás haciendo ni para qué, pero si quieres hacer algo repetitivo (o no) enviando teclas, también puedes usar macros en el propio navegador, por ejemplo: imacros
Responder Con Cita
  #4  
Antiguo 23-01-2012
Furyxe Furyxe is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 34
Poder: 0
Furyxe Va por buen camino
A ver.

Neftali, lo entiendo a medias, el razonamiento si esta claro, pero nose como enviar las teclas a ese handle.

Casimiro.

La idea es un programa que envia una serie de tabuladores, y la tecla enter, con el fin de navegar por distintos enlaces. Quizas el componente de firefox que me pasas, sea util. Pero la idea es hacer yo el programa, y seguir aprendiendo, y no usar soluciones ya existentes.

El codigo que utilizo actualmente para enviar teclas, es:

keybd_event(VK_SPACE, 0, 0, 0);
keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0);

Creo que tambien hay por ahi una forma de enviar las teclas de forma "virtual".

El programa, realiza bien las tareas, pero solo cuando tiene el foco.
Alguna idea?

Gracias a ambos por las respuestas ^^
Responder Con Cita
  #5  
Antiguo 23-01-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Furyxe Ver Mensaje
Neftali, lo entiendo a medias, el razonamiento si esta claro, pero nose como enviar las teclas a ese handle.

...La idea es un programa que envía una serie de tabuladores,
Bueno, mi comentario es más una idea, no te puedo asegurar que funcione. Se trataría de enviar mensajes a ese handle. Revisa en los foros sobre envío de mensajes...

En cuanto a lo que comentas a Casimiro, si la idea es ir navegando a accediendo a páginas, ¿no podrías extraer la información de la página web y posteriormente acceder directamente a esas direcciones?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 23-01-2012
Furyxe Furyxe is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 34
Poder: 0
Furyxe Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Bueno, mi comentario es más una idea, no te puedo asegurar que funcione. Se trataría de enviar mensajes a ese handle. Revisa en los foros sobre envío de mensajes...

En cuanto a lo que comentas a Casimiro, si la idea es ir navegando a accediendo a páginas, ¿no podrías extraer la información de la página web y posteriormente acceder directamente a esas direcciones?
Ahora cuando tenga un ratito reviso eso.

Y en cuanto a lo de extraerla, si y no.

Resulta, que el programa funciona con un sistema de configuraciones.
Podria haber extraido toda la informacion, almacenarla en una base de datos, y obtener. Pero resulta, que tras analizar la informacion, son mas de 300 url a guardar, y las url a ser de paginas externas, pueden cambiar en cualquier momento.

En cambio, el algoritmo que yo he hecho, es bastante simple, trabaja con un bucle for, que segun la configuracion asignada, da mas o menos "vueltas". Y las vueltas son obtenidas de una pequeña formula que me he inventado. Es decir, es una solucion rapida, sin tener que andar accediendo a base de datos u otros medios parecidos.

Y funciona perfectamente, pero solo si esta activo el programa. En caso de tenerlo minimizado o algo, no hace nada, y eso es lo que quiero arreglar.


EDITO:
He probado a enviar mensajes al handle con: "PostMessage(Form1.WebBrowser1.handle,WM_KEYDOWN,VK_TAB,0);".

Basandome en el siguiente codigo de internet:
var
x,tecla:integer
begin
for x:=0 to ComponentCount-1 do
if (Componentes[x] is TEdit) and
(TEdit(Components[x]).Focused=True)then
PostMessage(TEdit(Components[x]).handle,WM_KEYDOWN,tecla,0);

Parece ser o que no uso bien la "conversion" que he hecho, o que no funciona:S

Última edición por Furyxe fecha: 23-01-2012 a las 13:51:45. Razón: Info
Responder Con Cita
  #7  
Antiguo 24-01-2012
Furyxe Furyxe is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 34
Poder: 0
Furyxe Va por buen camino
Mmm, busco por internet pero no encuentro respuesta alguna.

Alguien tiene alguna idea sobre el tema?
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
Realizar Consulta SQL y desplegar Ventana con Timer Enan0 Varios 4 21-10-2011 19:50:42
Ventana de Login al correr un programa Yasnet MySQL 12 16-11-2008 20:30:00
Realizar auditoria de acciones de usuarios mantrax Seguridad 3 19-10-2007 05:42:33
Realizar prespuesto sobre mejoras de un programa mazinger Varios 2 10-04-2006 18:35:29
Dejar una ventana en segundo plano inactiva vhirginia Varios 7 22-04-2004 13:46:43


La franja horaria es GMT +2. Ahora son las 15:04:59.


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