2013-06-28 43 views
2

似乎我無法找出是,如果有可能在C#控制檯應用程序在某種層上的發言權進度條或信息,現有的窗口和文本的頂部寫入文本。在控制檯窗口覆蓋上書寫?

我見過電源外殼的cmdlet做的,顯示一個進度條,然後當它完成了進度條消失而無論是下是可見的。我見過也酒吧停留在位置,即使有其他的控制檯輸出使窗口滾動。

任何任何想法?

編輯:做它用寫進展

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

我猜這樣做是進度條的更新和重新顯示每次清除屏幕,但也許有另一種方式。 – Gray

+0

你幾乎可以做你想要'Console.SetCursorPosition'任何的挫折感。通常情況下,當事情看起來是「上面」的別的東西,它只是意味着該程序被存儲到重新創建它之前覆蓋需要在內存中的信息。 – Servy

回答

4

很有可能他們正在使用Console Screen Buffers的PowerShell這裏有一個例子。也就是說,他們保存當前的緩衝區併爲應用程序創建一個新的緩衝區。當應用程序完成時,它將放回原始屏幕緩衝區。

我寫了一篇文章關於幾年前在.NET中使用控制檯屏幕緩衝區。退房http://www.devsource.com/article2/0,1895,2011496,00.asp

完整的源可在http://www.mischel.com/pubs/consoledotnet/consoledotnet.zip

+0

非常有趣,謝謝!會給這個讀,但看起來它會做我所要求的,謝謝:) – Ashigore