2017-10-04 169 views
0

我需要在Windows控制台中禁用用户鼠标选择。这是可能的和如何?我尝试使用功能SetConsoleMode()禁用它的鼠标输入,但它没有按预期工作。选择仍然是可能的。如何在Windows控制台中禁用用户选择

+1

这是你真正需要的,还是你认为是你的解决方案?这真的闻起来像一个[XY问题](http://xyproblem.info/)。即使不是,该设置由用户自行决定。 – IInspectable

+0

我猜你说的是使用鼠标进行剪切和复制类型的操作?我想所有你可以用SetConsoleMode()来控制的是,程序是否可以读取鼠标事件。我不知道是否可以使用API​​调用控制台切割和复制;即使它是,我怀疑它可能会在Windows版本之间有所不同。 –

+0

@Ron:该标志控制着您是否在控制台中获得了鼠标输入通知。它不会改变,控制台本身如何响应鼠标输入。 – IInspectable

回答

3

控制台的快速编辑模式允许用户使用鼠标快速选择和复制文本,而无需首先进入标记模式(即Ctrl + M或编辑 - >在菜单上标记)。启用快速编辑模式通常很方便,但它会干扰获取鼠标输入。您可以使用手柄控制台输入缓冲区如下禁用它:

DWORD prev_mode; 
GetConsoleMode(hInput, &prev_mode); 
SetConsoleMode(hInput, prev_mode & ~ENABLE_QUICK_EDIT_MODE); 

记住在出口恢复到以前的状态。