揭秘CMD中呼叫不支援滑鼠的原因

2021-05-26 20:32:55 字數 997 閱讀 1687

揭秘cmd中呼叫不支援滑鼠的原因,並告訴大家如何處理這個問題。

首先,讓我們認識api函式getconsolemode。從字面上理解,這個函式可以獲取「consolemode」。「consolemode

」,可以通俗地理解成命令列模式。

示例**:

獲得當前的模式:

handle hin=getstdhandle(std_input_handle);

dword oldmode;

getconsolemode(hin,&oldmode);

printf("%d",oldmode);

(注意,這裡用了printf函式,**入標頭檔案stdio.h)

按下ctrl+f5執行程式,可以看到輸出的值為439。然而,當我們在cmd中執行的時候,我們發現輸出了423而非439,439-423=16。我們開啟vc安裝路徑中include資料夾的wincon.h,在「input mode flags」部分我們發現,enable_mouse_input所對應的值正是16!

原因就是cmd執行的時候沒有模式裡面沒有enable_mouse_input,所以就無法從命令列讀出滑鼠的資訊。那麼,我們只需要給命令列加上enable_mouse_input就可以了。

這就需要用到api函式setconsolemode。可以看出,這個api函式是與getconsolemode對應的。

那麼,給當前模式加上enable_mouse_input,**如下:

handle hin=getstdhandle(std_input_handle);

dword oldmode;

getconsolemode(hin,&oldmode);

setconsolemode(hin,oldmode|enable_mouse_input);

把這段**加在滑鼠處理部分的前面,測試一下。哈,在cmd中也能夠正常讀取滑鼠資訊了!

setconsolemode(hin,oldmode);

哈哈,現在大家可以寫出自己的滑鼠工具了吧!

jsp開發中不支援EL問題

今天遇到了乙個莫名其妙的問題,就是在使用myeclipse5.5或6.0時遇上了解析不到el表示式的問題。經過好幾個小時的琢磨終於發現了,給大家share一下 問題就出在建web project的時候web.xml宣告上。web.xml宣告部分一般分為如下版本的xsd,更詳細的列出各版本web.xm...

iOS9 中不支援http

今天公升級xcode 7.0 bata發現網路訪問失敗。輸出錯誤資訊 of a secure connection.在filter中搜尋info.plist,選擇info.plist進行編輯 注意 單元測試下面也有乙個info.plist,修改那個檔案是沒有作用的!出於安全考慮我們提倡使用https...

Mysql中不支援的Oracle函式

最近在更換資料庫,在改sql的時候有些oracle中的函式在mysql中不支援,記錄一下。1.oracle中的nvl 字段,替代值 此函式的意義為如果欄位是null那麼就用替代值代替這個空欄位對應的值 select nvl age,18 as age from user 這裡面如果某個人的age欄位...