【发布时间】:2015-05-30 00:18:12
【问题描述】:
我有一个古老的基于 DOS 的命令行系统,我需要从中提取大量数据 - 并且无法直接访问这些数据。
有没有办法使用 UI 自动化或类似方法来写入已经运行的控制台窗口(并从它的特定部分读取)?最好在 C# 中。
这样我可以远程控制系统,并遍历其中的数据,将其转储出去。
【问题讨论】:
-
该方法不允许我获取屏幕上位置 X=5,Y=10 的内容(例如)。这是一个 DOS 用户界面,所以我需要检查给定位置的内容。
-
您必须进入非常低的级别并检索与应用程序控制台关联的数组。找不到好的例子。首先阅读 MSDN 文档中的 GetConsoleScreenBufferInfo API。
-
至于写好的旧sendkeys怎么样?写入 consol 缓冲区似乎不是“控制”程序的一种方式。 - 至于阅读,如果一切都失败了,你可以刮掉屏幕并将像素转换为它们的字符。这会有多大的痛苦,取决于你有多少控制权以及程序的行为有多怪异,比如改变字体和颜色..
标签: c# windows ui-automation