![]() |
![]() |
| Paypal | 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
|
|||
|
|||
|
Este sería mi mensaje número diez. Veamos si ahora puedo subir ese archivo.
|
|
#2
|
|||
|
|||
|
Ahí está; me acabo de dar cuenta que tiene que estar comprimido en .zip y no en .rar.
Desearía que lo vieras y me hagas algún comentario al respecto. Saludos. Abel |
|
#3
|
|||
|
|||
|
No me parece mucho más complicado de lo que acabamos de hacer, si eres capaz de hacerlo todo sólo mediante teclado.
Lo más inmediato que se me ocurre es contar el nº de veces que pulsas "tab" para llegar a los edits que quieres completar y "escribir" lo que quieras. Lo mismo para llegar a los botones y "escribir" un "enter". Lo difícil será presionar la imagen esa de "Communication Settings" si no puedes llegar a ella con acceso rápido o con tabulaciones. Tal vez una solución más "elegante" (no la he probado,sólo teórica) sería usar la función GetWindow con parámetros GW_CHILD y GW_HWNDNEXT e ir probando hasta que dieses con el Edit en cuestión (NOTA: los edit se tratan como ventanas hijas de la ventana principal). He llegado a esta conclusión haciendo pruebas con ele Notepad y viendo que la ventana padre (FindWindow (NULL,"Unbenannt - Editor") tiene dos hijos (doy por sentado, sin probarlo, que serían el menú y el edit) y que por eso esta función te permitía escribir en la "ventana Edit" FindWindowEx(wnd,0,"Edit",NULL); , que realmente es un Edit y no un Window. NO ESTOY SEGURO DE ESTO ÚLTIMO.La solución de las tabulaciones seguro que es infinitamente más sencilla que la otra.... Un saludo, LoPiTaL |
|
#4
|
|||
|
|||
|
Cita:
Me olvidaba, si haces correr el WinCtrl, en la parte de abajo al medio, hay un cuadrito que tienes que marcarlo, sinó no puedes hacer nada. Eso solo te indica que lo que vayas a hacer es tu responsabilidad (está todo en alemán). Tambien tengo el código de este programa, pero muchas cosas no lo entendí. Como te darás cuenta, con este puedes manipular otras aplicaciones. Saludos. Abel. |
|
#5
|
|||
|
|||
|
Es interesante el programa este, no soy capaz de hacer gran cosa con él, pero demuestra que se puede acceder a todas las "ventanas" de una aplicación, como ya te había comentado, tanto a los edits como a los forms, etc... y de hecho si utilizas el botón ese de "Send Command" a cualquiera de ellos lo que hace es cambiarle el texto, ya sea el Caption en los labels, forms, etc... o el Text en los Edits... Lo malo es que no todas las "ventanas" tienen nombre (o al menos no aparece), entonces no sabes realmente a cuál de ellas le estás mandando cosas si no vas probando... y claro, tal y como te avisa la aplicación, "es tu responsabilidad"
![]() Un saludo, LoPiTaL |
|
#6
|
|||
|
|||
|
estuve haciendo experimentos y no logro meter la ruta en la ventana "Abrir". Esto es lo que hice:
char s[200]="O:\\NU\\Projects\\FuA\\CC_EL\\Centerdaten\\ECU_Test\\Projects\\DQ200_G2\\Tools\\EcuFlashTool\\Flas hMonitorEOL\\DQ200G2_Flash_Monitor_EOL.ini"; wnd = FindWindow (NULL,"ECU Flash Tool"); BringWindowToTop(wnd); keybd_event(VK_CONTROL, 0, 0, 0); keybd_event(0x4F, 0, 0, 0); keybd_event(0x4F, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); wnd = FindWindow (NULL,"Open File"); BringWindowToTop(wnd); for( i= 0;i<= strlen(s);i++) { keybd_event((int)s[i], 0, 0, 0); keybd_event((int)s[i], 0, KEYEVENTF_KEYUP, 0); } el problema es que los signos ":" y "\" no los quiere escribir. Tienes alguna idea de cómo añado estos signos? Saludos. Abel. |
|
#7
|
|||
|
|||
|
Hola a todos,podría por favor alguien traducirme esto a C, yo me hice un rollo y no me resulta.
Gracias de antemano. Abel. procedure Keyb_Event(C: CHAR); var S: WORD; begin S:= VkKeyScan(C); if(S and $0100) <> 0 then keybd_event(VK_SHIFT,0,0,0); if(S and $0200) <> 0 then keybd_event(VK_LCONTROL,0,0,0); if(S and $0400) <> 0 then keybd_event(VK_LMENU,0,0,0); keybd_event(S,0,0,0); keybd_event(S,0,KEYEVENTF_KEYUP,0); if(S and $0100) <> 0 then keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0); i f(S and $0200) <> 0 then keybd_event(VK_LCONTROL,0,KEYEVENTF_KEYUP,0); if(S and $0200) <> 0 then keybd_event(VK_LMENU,0,KEYEVENTF_KEYUP,0); end; |
|
#8
|
|||
|
|||
|
Cita:
A mí me ha funcionado a la perfección. Un saludo, LoPiTaL |
|
#9
|
|||
|
|||
|
Ya me acordé que ese programa que leía los Handles de otros programas lo tenía grabado en mi Flash. Aqui les adjunto.
Saludos. Abel |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Acceder a una aplicación externa | FDB | Varios | 3 | 22-01-2008 13:45:02 |
| Aplicacion externa a c++ | alloger | C++ Builder | 1 | 28-10-2006 00:37:09 |
| Manipular una aplicacion externa | lookmydoom | API de Windows | 2 | 09-08-2006 22:22:52 |
| Ejecutar comandos en aplicación externa | José Craviotto | Varios | 1 | 03-02-2006 13:21:28 |
| Ejecutar aplicación externa | taita | API de Windows | 4 | 06-08-2005 23:45:57 |
|