在控制台窗口覆盖上写?

时间:2013-06-28 18:39:14

标签: c# console-application

我似乎无法找到的是,在C#控制台应用程序中是否可以在现有窗口顶部的某种层中写入文本,并在文本中写入进度条或信息。

我见过执行它的power shell cmdlet,显示进度条,然后当它完成时,进度条消失,下面的任何内容都可见。即使额外的控制台输出导致窗口滚动,我看到的栏也会保持原位。

任何想法?

编辑:以下是使用Write-Progress

执行此操作的PowerShell示例

http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-76-18-metablogapi/8726.WES_2D00_1_2D00_29_2D00_11_2D00_2_5F00_2587E97F.jpg

1 个答案:

答案 0 :(得分:5)

他们很可能正在使用Console Screen Buffers。也就是说,它们保存当前缓冲区并为应用程序创建一个新缓冲区。应用程序完成后,它会重新放回原始屏幕缓冲区。

几年前我写了一篇关于在.NET中使用Console Screen Buffers的文章。查看http://www.devsource.com/article2/0,1895,2011496,00.asp

完整来源位于http://www.mischel.com/pubs/consoledotnet/consoledotnet.zip