2
A
回答
0
在Windows上有一個用於編寫「控制檯模式」應用程序的完整API。它允許您以事件驅動的方式監聽鼠標或鍵盤輸入,還可以設置文本的前景和背景顏色,定位光標等。
要製作一個類似CMD.EXE所顯示的盒子,你使用某些特殊字符來製作邊框(有各種角落和邊緣碎片 - 使用Character Map應用程序來查看它們)。
要使用C#中的Console API,您可能需要使用pinvoke,例如,
[DllImport("kernel32.dll")]
public static extern bool SetConsoleTextAttribute(
IntPtr hConsoleOutput, int wAttributes);
請參閱文檔SetConsoleTextAttribute以瞭解如何使用它來設置顏色。
1
我不確定.NET是否包含它們的包裝器,或者是否必須通過P/Invoke來使用它們,但是Win32 API包含這些功能。例如,您可以使用ReadConsoleOutput
來讀取您要遮掩的顯示屏的區塊。然後你會使用WriteConsoleOutput
來顯示你的列表(包括邊框)。覆蓋圖完成後,您可以通過WriteConsoleOutput
的另一個調用恢復以前的內容,指定保存底層數據的塊。
編輯:做一個快速檢查,正確的功能不會跳出來反正我。也許我錯過了一些顯而易見的東西......
+0
+1。非常感謝 - 您的方法也適用於我。 – 2010-04-16 03:55:56
相關問題
- 1. 從命令行執行控制檯應用程序?
- 2. 獲取BlackBerry模擬器打印到命令行/控制檯
- 3. 如何使用autowire命令設置控制檯應用程序?
- 4. 如何從GUI應用程序向控制檯應用程序發送命令
- 5. Laravel:類應用程序\控制檯\命令\ BlockModelsDidNotShowUp不存在
- 6. 關閉控制檯應用程序的命令?
- 7. 無法向控制檯應用程序發送多個命令
- 8. 在控制檯應用程序中編寫cmd命令
- 9. 從其他控制檯應用程序運行控制檯應用程序
- 10. 可能在app.config中模擬控制檯應用程序?
- 11. 將返回鍵發送到模擬控制檯應用程序
- 12. 在Linux C控制檯應用程序中模擬按鍵
- 13. 如何模擬鍵盤輸入到控制檯應用程序?
- 14. 從控制器的Symfony3控制檯運行控制檯命令
- 15. 在命令行模擬Visual Studio的Web應用程序「發佈」
- 16. iOS模擬器應用程序的終端命令行調試?
- 17. 運行C#控制檯應用程序
- 18. 如何從C#控制檯運行多個CMD命令應用程序
- 19. .NET控制檯應用程序命令行解析文件參數
- 20. 如何在命令行中提供.net控制檯應用程序?
- 21. 在開發人員命令提示符下運行控制檯應用程序
- 22. 如何通過REST API在Heroku應用程序上運行控制檯命令?
- 23. 試圖閱讀控制檯應用程序的某些命令行參數
- 24. 將命令行參數傳遞給控制檯應用程序中的VB6 IDE
- 25. 控制檯命令不執行,而調試時的tizen應用程序
- 26. xCode 6 - 從模擬器中運行的應用程序查看控制檯
- 27. 從Java控制檯程序的命令行中讀取段落
- 28. 具有SharePoint參數的VB.Net命令行(控制檯)程序
- 29. 從命令行參數控制程序
- 30. 從Windows XAML應用程序運行控制檯應用程序
我很嫉妒。 *我的* F7不這樣做...... – 2010-04-15 05:37:24
這種類型的UI傳統上是通過直接尋址與顯卡的文本模式相對應的視頻RAM來創建的。過去有大量的圖書館來建立菜單,繪製窗口等等。主要是他們應該在現代Windows下工作,但是我很長時間沒有推薦任何特定的東西。如果一個熱鍵(例如F7)激活菜單,您可能正在查看一個TSR(終止並保持駐留)程序......一個在DOS下啓動,鉤住鍵盤並退出但仍留在內存中等待特定按鍵。 – 2010-04-15 05:40:48
@Eric J. - 令人驚訝的是Windows NT一直支持控制檯中的TSR:http://support.microsoft.com/kb/101921 - 但是今天使用這個API會很瘋狂 - 你會寫一個16-僅限於訪問大約0.025%的現代PC內存。事實上,我不知道是否有人曾經在Windows NT或更高版本上運行過TSR。沒有多少公司需要運行16位Windows應用程序。 – 2010-04-15 05:57:39