【问题标题】:How to reliably capture win32 console screen buffer changes?如何可靠地捕获 win32 控制台屏幕缓冲区更改?
【发布时间】:2009-08-14 17:35:24
【问题描述】:

是否有任何方法可以可靠地捕获对 win32 控制台缓冲区所做的所有更改?这个想法是将文本模式应用程序的屏幕更新转换为 ANSI 转义序列,用于 telnet/ssh 服务器。我需要捕捉光标移动、颜色、窗口标题等。如果可能的话,还需要捕捉鼠标点击。

到目前为止,我看到的唯一用于此目的的技术基本上是频繁地拍摄控制台缓冲区内容的快照,并与之前的快照进行比较。如果有变化,则找出发生了什么变化并生成 ANSI 转义序列。

这种方法很有效,但是一个好的差异算法来最小化向下发送的数据量会很复杂。有时屏幕缓冲区更新得太快,以至于根本没有发送一些更新。这是一个表演停止者;我需要 100% 可靠地捕获所有数据。

【问题讨论】:

    标签: winapi console capture


    【解决方案1】:

    遗憾的是,这不能可靠地干净地完成。重定向标准句柄只会捕获高级控制台 I/O。遗憾的是,我知道捕获所有内容的唯一方法是从目标进程(及其子进程)中挂钩控制台 API。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 2019-11-16
      • 1970-01-01
      • 2013-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多