PDA

Ver la Versión Completa : leer cadena de otra aplicacion


jar
04-02-2007, 00:27:22
hola foro,

Estoy realizando una aplicación en la que necesito leer una cadena de texto de otra aplicación. Sólo puedo hacerlo a través de la pantalla, es decir, mi aplicación correrá en segundo plano, y al pulsar el boton central del ratón sobre una palabra en la pantalla, debería capturarla.

Es una forma muy parecida a como trabaja el diccionario inglés-español, Babylon: te posicionas encima de una palabra y la lees.

Alguna sugerencia?

gracias

Al González
04-02-2007, 06:41:52
¡Hola a todos!

Sí. Podrías lograr el objetivo utilizando un gancho de ratón a nivel del sistema y ciertas funciones de la API de Windows que te permiten averiguar qué objeto visual se encuentra en cierta posición de la pantalla.

De la ayuda (archivo Win32.hlp), te recomiendo los temas Hooks (con la función SetWindowsHookEx creas el interceptor de clics) y EnumChildWindows, que junto con otras funciones te permite determinar que “ventana” (edit, label, button, etc.) se encuentra donde ocurrió el evento del ratón. Además estoy seguro de que en estos mismos foros encontrarás algo de material al respecto.

Buena suerte y no dejes de informarnos sobre tus avances.

Un abrazo enganchado.

Al González. :)

ixMike
05-02-2007, 20:18:12
Hola, jar.

¡Bonito programa, ese Babylon! Viene genial para traducir inmediatamente lo que no sabes (aunque no sólo el ing-esp, puedes instalarle glosarios adicionales).

A lo que tú pides, me parece que lo que hace Babylon (a parte de lo que dice Al González) es capturar la pantalla, y mediante algún algorritmo detectar qué está escrito en pantalla. Yo lo he probado con dibujos (BMPs) y en algunos también ha leído las palabras. Por cierto, si la fuente es Tahoma a tamaño 8 a veces las "d"s (letra d minúscula) las lee como "cl" (cosas de ese algorritmo que te comento).

Salu2, y que te vaya bien con el proyecto.