我知道如何將光標設置在控制檯中的特定點與SetCursorPosition或左方向鍵和CursorTop在一起。這不是問題。如何在C#控制檯應用程序中獲取光標處的字符?
但是,我怎麼能得到那個點的價值?是不是有像Console.Cursor?所以我可以在那個位置找到角色?可能是這樣的:
char c = Console.GetCharAtCursor();
不幸運?
我知道如何將光標設置在控制檯中的特定點與SetCursorPosition或左方向鍵和CursorTop在一起。這不是問題。如何在C#控制檯應用程序中獲取光標處的字符?
但是,我怎麼能得到那個點的價值?是不是有像Console.Cursor?所以我可以在那個位置找到角色?可能是這樣的:
char c = Console.GetCharAtCursor();
不幸運?
「左方向鍵」和「CursorTop」有干將,所以你可以只閱讀:var cleft = Console.CursorLeft
據我所知,您已經閱讀整個控制檯緩衝區爲一個二維緩衝區,並使用光標的X和Y座標爲該緩衝區的索引。請參閱:
[DllImport("kernel32.dll", CharSet=CharSet.Unicode, SetLastError=true)]
public static extern bool GetConsoleScreenBufferInfo(
IntPtr consoleHandle,
out CONSOLE_SCREEN_BUFFER_INFO consoleScreenBufferInfo);
您可以閱讀有關緩衝結構在這裏:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682093(v=vs.85).aspx
更新:
如果您有興趣使用控制檯的API爲遊戲寫,有人寫控制檯的空間入侵者(實際上是powershell),但所有的API都是託管代碼,而不是腳本。他有sprite /路徑例程等 - 源碼已結束http://ps1.soapyfrog.com/2007/08/26/grrr-source-code-including-invaders/
實際上,您是否想要讀取輸入流?
Console.ReadKey();
例如。
謝謝Jodrell。我有我需要的。 – 2012-03-20 16:22:13
你能澄清一下你試圖獲得什麼價值嗎?你想獲得你指向的字符串或數字的值或指針的座標嗎? – mservidio 2012-03-20 15:58:54
該帖子已被編輯。你能再讀一遍嗎?如果您有其他方法可以做到這一點,請分享。 – 2012-03-20 16:14:00