Resultados 1 al 3 de 3

Capturar texto de ventana

  1. #1 Capturar texto de ventana 
    Medio
    Fecha de ingreso
    Sep 2008
    Mensajes
    134
    Descargas
    0
    Uploads
    0
    Hola chicos. Me preguntaba si podría existir una manera de capturar el texto de cualquier ventana que se abra en el sistema, como por ejemplo, obtener el texto de un mensaje recibido por parte de un contacto del Messenger. Pensé en dos maneras:
    -La primera sería establecer un hook en el MSN Messenger
    -La segunda opción podría ser obtener el manejador de la ventana abierta y acceder a sus propiedades, pero para ello tendría que conocer previamente dichas propiedades. Así, cuando se abra una ventana de conversación de Messenger, tendría que saber si hay una propiedad para el nick, otra para el email, otra para el texto recibido, otra para el boton emoticono, etc. ¿Dónde podría ver dichas propiedades? El manejador de las ventanas de conversaciones en Messenger desde Visual Basic 6 es pIMWindow as Object. ¿Alguna idea o ayuda? Gracias, un saludo!
    Citar  
     

  2. #2  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    Busca por las funciones de la API WIN32 para el manejo de ventanas: EnumWindows, GetWindowsText, GetClassName, FindWindow, FindWindowEx, etc...

    Te permiten enumerar ventanas activas, obtener los captions de éstas, obtener el handle que las identifica y obtener el handle de objetos contenidos en ellas, entre otras cosas (por el ejemplo el handle de un botón o un cuadro de texto contenido en una ventana).

    Posteriormente, debes tratar con ese handle (ya sea de la propia ventana o de un objeto en particular contenido en ella) para su manejo... Normalmente con el envío de mensajes suele bastar (funciones SendMessage y PostMessage).

    Visual Studio tiene una herramienta llamada "spy++" que viene adjunta, que sería recomendable utilizar durante la implementación de tu programa, ya que lista los manejadores (handles) de cada ventana, proceso o hilo en ejecución.

    Si tienes dudas, pregunta.

    La otra opción es olvidarnos de las ventanas y acceder al espacio de memoria del proceso y sabiendo la dirección de memoria del objeto contenido, acceder a la porción de memoria que contiene el buffer del texto. Necesitarás hacer uso de las "Tool Help Functions" para el tratamiento de procesos. Posteriormente volvemos al tema de tener que leer y escribir de memoria, usando ReadProcessMemory y WriteProcessMemory, entre otras cosas.

    Un saludo.
    Última edición por hystd; 02-10-2009 a las 17:46
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

  3. #3  
    Medio
    Fecha de ingreso
    Sep 2008
    Mensajes
    134
    Descargas
    0
    Uploads
    0
    Estuve buscando y vi que con WM_GETTEXT y haciendo uso de la función SendMessage puedo obtener el texto de una ventana, pero obtengo el caption, osea, el título. ¿Cómo puedo acceder a los objetos de la propia ventana tal como el textBox y eso? Y otra cosa hystd, el Spy++ no lo veo por ninguna parte. Tengo instalado Visual Studio 2008 y 6.0. Un saludo!
    Citar  
     

Temas similares

  1. [duda]Ocultar ventana en C++
    Por McArio en el foro WINDOWS
    Respuestas: 5
    Último mensaje: 20-05-2009, 05:56
  2. Respuestas: 3
    Último mensaje: 09-12-2008, 16:24
  3. Abrir en la misma ventana
    Por fedderico10 en el foro WINDOWS
    Respuestas: 3
    Último mensaje: 30-01-2006, 16:02
  4. Puedo modificar ventana de Outlook?
    Por elfo07 en el foro GENERAL
    Respuestas: 7
    Último mensaje: 07-12-2005, 20:17
  5. Cerrar ventana de BAT
    Por twilight en el foro GENERAL
    Respuestas: 1
    Último mensaje: 16-05-2003, 12:21

Marcadores

Marcadores