me refiero a que el computador "lea literalemnte" con el speechrecognizion
selecciono un texto le ordeno leer y el , lee el objeto y lo habla por las cornetas, lo que no se es el comando para que pueda leer el texto seleccionado
Es decir, eso que no sabes hacer, te refieres a que al seleccionar con el ratón una cadena de texto DE CUALQUIER APLICACIÓN / VENTANA ABIERTA, ¿quieres saber
como capturar ese texto desde tu programa? (para luego "leerlo").
Cuando dices "leer" ¿te refieres a copiar al portapapeles?
De cualquier aplicación o de la misma
Deberías responder a la pregunta del compañero @Okik para aclarar mejor lo que pretendes hacer, por que no es tan simple si estamos hablando de la instancia de tu propio programa, o de capturar el texto de una ventana externa...
...para esto último se me ocurren al menos 3 alternativas, cada una con sus ventajas y desventajas:
1. API de Windows (funciones de ventana y procesado de mensajes de ventana)
- Requiere la implementación, el uso y el control de errores de código no administrado.
- El desarrollo de un algoritmo exitoso podría convertirse en una auténtica pesadilla y llevar mucho tiempo de desarollo con fases de ensayo y error, ya que por necesidad se requiere la implementación de diferentes metodologías para ubicar ventanas en diferentes tipos de ventanas (vease por ejemplo:
ChildWindowFromPoint y
RealChildWindowFromPoint). Todo depende de lo que realmente necesite hacer tu algoritmo, cómo mínimo vas a tener que deliverar el mensaje de ventana
WM_GETTEXT a la ventana del control activo de la ventana principal activa (la cual puedes obtener con la función
GetForegroundWindow).
- Ejecución rápida.
2. Microsoft UI Automation
- Solución guiada y facil mediante código administrado que simplifica la tediosa implementación equivalente con la API de Windows y le abstrae de cierta dificultad.
- Solo aplicable a programas que soporten la API de UI Automation ( UIA TextPattern ).
- Ejecución lenta (muy lenta en comparación con unas simples llamadas a las funciones de la API de Windows).
3. Captura del portapapeles de Windows
- Requiere el uso inevitable y la "escucha" de la combinación de teclas "CTRL+C".
- Solución intrusiva para el usuario, ya que se reemplazaría el contenido del portapapeles. Por otro lado, se puede llevar a cabo una copia del contenido para restaurarla despues.
- No funcionaría en todo tipo de ventanas, sobre todo en controles que tengan bloqueado el copiado de texto mediante "CTRL+C".
Luego me dejo la alternativa más avanzada pero que probablemente sería la más eficiente a efectos prácicos: el API Hooking, pero no me hago una idea del todo clara de como se podría implementar a cabo para el objetivo de esta tarea en particular.
Como ves tienes varias opciones, pero desde luego esto no sería cuestion de que te digan "un comando para hacerlo", por favor dejemos de pensar en "comandos" y de pedir "comandos", aquí no hay tales "comandos". La programación requiere de un estudio con un mínimo de conocimiento y/o investigación previa, y del esfuerzo personal/individual para el desarrollo de algoritmos así...
Saludos.