2017-10-04 166 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); 

記住在出口恢復到以前的狀態。