Pregunta

¿Hay alguna manera de capturar de forma fiable todos los cambios realizados en el búfer de la consola Win32, a medida que ocurren? La idea es convertir las actualizaciones de la pantalla de una aplicación en modo texto a secuencias de escape ANSI, para un servidor telnet / ssh. Necesito capturar los movimientos del cursor, colores título de la ventana, etc. clics del ratón, también, si es posible.

La única técnica que he visto aplicar para esto hasta ahora es tomar instantáneas básicamente frecuentes de los contenidos del búfer de la consola, y compara a una instantánea anterior. Si hay cambios, a continuación, averiguar qué ha cambiado y generar secuencias de escape ANSI.

Este tipo de obras, pero un buen algoritmo diffing para reducir al mínimo la cantidad de datos enviados por la línea sería compleja. A veces, el búfer de pantalla se actualiza con tanta rapidez que algunas actualizaciones no se envían en absoluto. Esto es un tapón de la demostración; Necesito todos los datos capturados 100% fiable.

¿Fue útil?

Solución

Lamentablemente, esto no puede hacerse de forma fiable limpiamente. La reorientación de los mangos estándar, a no cogerán de alto nivel de la consola de E / S. La única manera que soy consciente de la captura de todo es conectar la consola de API desde el proceso de destino (y sus hijos), por desgracia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top