FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Editar sobre otros procesos.
Saludos, he vuelto. He intentado hacer una cosa para funcionar con otros procesos. No se si me explico bien, pero por si acaso voy a explicarlo con un ejemplo.
Yo hago un programa que tiene un botón, al activarlo, "activa" otro botón de otro proceso. Por ejemplo, funcionando con notepad, que escriba "Probando botón", como si yo hubiera clicado todos esos botones. Me gustaría saber también si es muy complicado o si ya hay algún ejemplo por aquí (no he encontrado ninguno). Gracias a tod@s de antemano. |
#2
|
||||
|
||||
Hola rauros, quieres que cuando hagas click digamos en Button1, llamar al codigo que hay en tus otros Buttons.
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#3
|
||||
|
||||
También puedes utilizar el metodo TButton.Click
La diferencia con la otra forma es que se asigna el ModalResult que tenga el botón al que le haces click y luego se ejecuta su código OnClick. Del Help de Delphi6 Cita:
Última edición por duilioisola fecha: 18-06-2008 a las 14:11:36. |
#4
|
|||
|
|||
No no, eso ya lo sabía. Lo que quiero es manejar otros procesos, externos a la aplicación delphi. Por ejemplo, tengo un juego que si pulsas el botón s saltas, pues que si activo algún procedimiento en delphi, que en el juego esté saltando todo el rato (lo del bucle infinito es sencillo, lo que no sé es manejar otras aplicaciones desde una).
|
#5
|
||||
|
||||
Cita:
__________________
Conoce mi blog http://www.edgartec.com |
#7
|
||||
|
||||
¿Te serviría el envío de teclas a otras aplicaciones o necesitas hacer más cosas?
Para "activar botones" tal como tú comentas, debes conocer el Handle apropiado del elemento que quieres modificar y a partir de ahí enviarle el mensaje adecuado para activarlo, ocultarlo,...
__________________
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. |
#8
|
|||
|
|||
Sí, me vale lo de las teclas. Estoy provando con una cosa pero me faltan algunas variables por declarar. El ejemplo es este:
http://www.clubdelphi.com/foros/showthread.php?t=31113 Pero no sé que tipo es hwndWinamp ni rtrim. ¿Y en ese ejemplo donde tengo que poner la manera de llegar a esa aplicación? ¿O tiene que ser la que está delante de todas? He visto FindWindow(nil,pchar(rtrim(gWindowName))), ¿El nombre va en el campo nil? |
#9
|
|||
|
|||
Qué cojones es esto?
|
#10
|
||||
|
||||
FindWindow(nil,pchar(rtrim(gWindowName)))
No he podido ver el hilo que comentas, pero FindWindow debe ser una funcion para devolver el handle de una ventana dando su nombre gWindowName es un string. RTrim es una función que corta los espacios en blanco de la derecha de la cadena pchar() convierte a un string en una cadena como las que se utilizan en C. En Pascal y Delphi los string se definían como un byte que dice qué longitud tiene y luego los caracteres que lo componen. En C, los string son caracteres que terminan en un caracter especial que marca el final. El handle es finalmente un entero. Con esto podrás saber cual es el handle de una ventan de la cual sabes el nombre. Luego, utilizando ese handle podrás enviarle información a esa ventana (teclas en tu caso). |
#11
|
|||
|
|||
¿Entonces RTrim no es necesario si no escribo espacios? Es que delphi me dice que no tengo RTrim declarado...
¿Y en GWindowName pongo el nombre de la aplicación, no?
Ahí está el ejemplo. Lo pongo porque no se como debo declarar HwndWinamp. He probado con HwndWinamp: handle; pero no funciona porque lo más seguro es que me lo haya inventado xD. |
#12
|
||||
|
||||
Supongo que si declaras HWndWinamp como integer y gWindowName com string será suficiente.
De todos modos, supongo que si te pones sobre la función FindWindow y presionas F1, te dará algo de información sobre esta API. (No tengo el Delphi para probar ahora) mira este hilo que creo que solucionará todas tus dudas |
#13
|
|||
|
|||
He conseguido compilar pero no encuentra ninguna ventana... Os puedo dejar el código para que me lo corrijan? (no es mucho)
He empezado provando con firefox pero siempre me dice firefox.exe VENTANA NO ENCONTRADA |
#14
|
||||
|
||||
Prueba cambiando el primer parámetro del FindWindow por:
PChar('MozillaUIWindowClass') Que es la clase para la ventana principal de FF; Deja el segundo parámetro a nil.
__________________
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. |
#15
|
|||
|
|||
Vale pero eso era para hacer una prueba. ¿y si necesito usar el proceso de un videojuego como puedo saber el tipo de clase para la ventana? Gracias a todos.
|
#16
|
||||
|
||||
Utilidades com WinDowse o Winexp pueden darte el nombre de la clase para una ventana determinada.
__________________
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. |
#17
|
|||
|
|||
He solucionado los problemas, gracias. Pero hay otro problema: no puedo escribir "punto". He provado con PostKeyEx32(46, [], TRUE); pero no funciona. Pese a que con PostKeyEx32(13, [], TRUE); si que pulsa "enter" (car return) y que las letras también funcionan de ese modo. Gracias por toda la ayuda.
|
#18
|
|||
|
|||
Investigando un poco he encontrado que el error es de delphi, y no del susodicho juego. Pues he probado con el notepad y tampoco se escriben puntos. Creo que solo se escriben carácteres alfabéticos (a...z). A ver si alguien encuentra alguna solución, o alguien le ha pasado esto anteriormente. Gracias.
|
#19
|
|||
|
|||
Ya que no me ayuda nadie con el problema anterior, pondré otro nuevo a ver si alguien me puede ayudar con este. Necesito la manera de conseguir información sobre otros procesos. Un ejemplo:
Si escribo "cosa" en notepad, al clicar mi programa, lea "cosa". Muchas gracias por las ayudas anteriores. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Editar sobre DBGrid | Ignacio | Varios | 7 | 25-07-2012 18:13:20 |
Duda editar sobre grid | hugohiram | Conexión con bases de datos | 1 | 07-01-2008 17:24:20 |
Sobre los procesos | Suriu | Windows | 1 | 07-05-2007 22:11:40 |
"enditall" finalizar aplicacs y procesos innecesarios para por ejemplo...editar video | images | API de Windows | 7 | 20-09-2004 09:55:14 |
|