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. vb.net 2010控制檯應用程序命令行aguments
- 3. 如何在控制檯應用程序中模擬PictureBox控件
- 4. 獲取BlackBerry模擬器打印到命令行/控制檯
- 5. Python的 - 通過控制檯命令到第三方控制檯應用程序
- 6. 運行Iphone模擬器從命令行運行應用程序
- 7. 控制檯應用程序中的用戶輸入命令
- 8. 如何使用autowire命令設置控制檯應用程序?
- 9. symfony2應用程序控制臺:沒有可用的命令
- 10. 在Symfony應用程序/控制檯中啓用Doctrine DBAL命令
- 11. 如何從GUI應用程序向控制檯應用程序發送命令
- 12. 從其他控制檯應用程序運行控制檯應用程序
- 13. 無法向控制檯應用程序發送多個命令
- 14. 關閉控制檯應用程序的命令?
- 15. C#控制檯應用程序命令會話歷史記錄
- 16. 在控制檯應用程序中編寫cmd命令
- 17. 在C++控制檯應用程序中重複命令
- 18. Laravel:類應用程序\控制檯\命令\ BlockModelsDidNotShowUp不存在
- 19. 在Windows上運行控制檯應用程序時抑制命令窗口
- 20. 如何模擬鍵盤輸入到控制檯應用程序?
- 21. 在Linux C控制檯應用程序中模擬按鍵
- 22. 可能在app.config中模擬控制檯應用程序?
- 23. 將返回鍵發送到模擬控制檯應用程序
- 24. 模擬WebView應用程序時獲取Javascript控制檯
- 25. MFC控制檯模式應用程序
- 26. C#控制檯應用程序不通過命令行讀,因爲它應該
- 27. 從控制器的Symfony3控制檯運行控制檯命令
- 28. 使用字符串[]從命令行調用控制檯應用程序args
- 29. 備用命令提示符或控制檯應用程序運行Ruby腳本
- 30. C#運行控制檯應用程序不同的用戶...模擬
我很嫉妒。 *我的* 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