Pergunta

Existe alguma maneira de capturar de forma confiável todas as alterações feitas para o buffer do console win32, como eles acontecem? A idéia é converter as atualizações de tela de um modo de aplicativo de texto para seqüências de escape ANSI, para um servidor de telnet / ssh. Preciso movimentos do cursor de captura, cores, título da janela, etc. cliques do mouse, também, se possível.

A única técnica que eu vi usado para isso até agora é tomar basicamente instantâneos frequentes de conteúdo do buffer console, e comparar com um instantâneo anterior. Se houver alterações, em seguida, descobrir o que mudou e gerar seqüências de escape ANSI.

Este tipo de obras, mas um bom diffing algoritmo para minimizar quantidade de dados enviados para baixo da linha seria complexo. Às vezes o buffer de tela é atualizado tão rapidamente que algumas atualizações não são enviadas a todos. Este é um show rolha; Eu preciso de todos os dados capturados 100% confiável.

Foi útil?

Solução

Infelizmente, isso não pode ser feito de forma confiável limpa. Redirecionando alças padrão só vai pegar de alto nível do console I / O. A única maneira que eu estou ciente de pegar tudo está ligando as APIs do console do processo de destino (e seus filhos), infelizmente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top