使用.net托管代码截取命令窗口的屏幕

使用.net托管代码截取命令窗口的屏幕,.net,console,screen-scraping,buffer,console-scraping,.net,Console,Screen Scraping,Buffer,Console Scraping,我正在用.net编写一个程序,它将使用Framework2.0的Process对象执行脚本和命令行程序。我希望能够访问程序中进程的屏幕缓冲区。我已经对此进行了调查,似乎需要访问控制台stdout和stderr缓冲区。有人知道这是如何使用托管代码实现的吗 我想我需要使用附加到任务的windows控制台的AttachConsole和ReadConsoleOutput,以便从控制台屏幕读取字符和属性数据块。我需要做的是管理代码 请参见您可以使用System.Diagnostics.Process类上的

我正在用.net编写一个程序,它将使用Framework2.0的Process对象执行脚本和命令行程序。我希望能够访问程序中进程的屏幕缓冲区。我已经对此进行了调查,似乎需要访问控制台stdout和stderr缓冲区。有人知道这是如何使用托管代码实现的吗


我想我需要使用附加到任务的windows控制台的AttachConsole和ReadConsoleOutput,以便从控制台屏幕读取字符和属性数据块。我需要做的是管理代码


请参见

您可以使用System.Diagnostics.Process类上的StandardError、StandardOutput和StandardInput属性来完成此操作

MSDN有一个很好的流程

请注意,您只能重定向已启动进程的输出。您未启动的外部进程无法在事件发生后重定向其标准输出


还要注意,要使用StandardInput,必须将ProcessStartInfo.UseShellExecute设置为false,并且必须将ProcessStartInfo.RedirectStandardInput设置为true。否则,写入StandardInput流会引发异常

谢谢你的迅速回复。然而,我不想看这条流。我想访问显示在命令窗口中的控制台缓冲区。这类似于在html页面上进行屏幕抓取。我想我需要使用控制台的AttachConsole方法,然后是ReadConsoleOutput方法来访问字符和属性数据的矩形。我不知道如何在托管代码中实现这一点。