Comment capturer de manière fiable les changements de mémoire tampon d'écran de la console win32?

StackOverflow https://stackoverflow.com/questions/1279139

  •  16-09-2019
  •  | 
  •  

Question

Est-il possible de capturer de manière fiable toutes les modifications apportées à la mémoire tampon de la console win32, comme ils se produisent? L'idée est de convertir les mises à jour de l'écran d'un mode texte application à des séquences d'échappement ANSI, pour un serveur telnet / ssh. Je dois saisir les mouvements du curseur, les couleurs, le titre de la fenêtre, etc. Les clics de souris, aussi, si possible.

La seule technique que je l'ai vu utilisé pour cela est si loin de prendre des clichés en gros fréquents de contenu du tampon de la console, et comparer à un instantané précédent. S'il y a des changements, alors comprendre ce qui a changé et de générer des séquences d'échappement ANSI.

Ce genre de travaux, mais un bon algorithme de diffing pour minimiser la quantité de données envoyées sur la ligne serait complexe. Parfois, la mémoire tampon de l'écran est mis à jour si rapidement que certaines mises à jour ne sont pas envoyées à tous. Ceci est un bouchon de spectacle; J'ai besoin de toutes les données capturées de manière fiable à 100%.

Était-ce utile?

La solution

Malheureusement, cela ne peut être fait de manière fiable proprement. Rediriger poignées standards ne fonctionnera que pour I console de haut niveau / O. La seule façon que je suis au courant d'attraper tout hooking les API de la console du processus cible (et ses enfants), malheureusement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top