![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 ^^ |
#2
|
||||
|
||||
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. |
#3
|
||||
|
||||
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
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#4
|
|||
|
|||
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 ^^ |
#5
|
||||
|
||||
Cita:
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. |
#6
|
|||
|
|||
Cita:
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 |
#7
|
|||
|
|||
Mmm, busco por internet pero no encuentro respuesta alguna.
Alguien tiene alguna idea sobre el tema? |
![]() |
|
|
![]() |
||||
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 |
![]() |
|