【发布时间】:2017-07-21 06:24:25
【问题描述】:
我有一个控制台游戏,我想禁用鼠标输入。我从this 页面获得了代码,但是当我尝试运行它时,GetConsoleMode 函数失败,错误代码为 6,代表“无效句柄”。
所以我的问题是:为什么 GetConsoleWindow() 方法返回无效的控制台句柄?
这里是我的源代码:
private static void DisableMouseInput()
{
IntPtr consoleHandle = GetConsoleWindow();
uint consoleMode;
Console.WriteLine(Marshal.GetLastWin32Error()); // get current console mode
if (!GetConsoleMode(consoleHandle, out consoleMode))
{
// Error: Unable to get console mode.
Console.WriteLine(Marshal.GetLastWin32Error());
throw new Exception();
return;
}
// Clear the mouse input bit in the mode flags
consoleMode = consoleMode & 0xffbf; //0xffef = ~0x0040 = ~ENABLE_QUICK_EDIT
// set the new mode
if (!SetConsoleMode(consoleHandle, consoleMode))
{
// ERROR: Unable to set console mode
}
}
【问题讨论】: