【发布时间】:2009-08-14 17:35:24
【问题描述】:
是否有任何方法可以可靠地捕获对 win32 控制台缓冲区所做的所有更改?这个想法是将文本模式应用程序的屏幕更新转换为 ANSI 转义序列,用于 telnet/ssh 服务器。我需要捕捉光标移动、颜色、窗口标题等。如果可能的话,还需要捕捉鼠标点击。
到目前为止,我看到的唯一用于此目的的技术基本上是频繁地拍摄控制台缓冲区内容的快照,并与之前的快照进行比较。如果有变化,则找出发生了什么变化并生成 ANSI 转义序列。
这种方法很有效,但是一个好的差异算法来最小化向下发送的数据量会很复杂。有时屏幕缓冲区更新得太快,以至于根本没有发送一些更新。这是一个表演停止者;我需要 100% 可靠地捕获所有数据。
【问题讨论】: