close
在LabVIEW中要偵測鍵盤滑鼠的動作,標準做法是使用鍵盤滑鼠事件來處理。這個方法有個問題?那就是鍵盤上有些按鍵在事件中是偵測不到的,尤其是很多新型鍵盤通常比標準鍵盤多了很多功能鍵
透過調用API程式user32.dll的GetKeyboardState函式,可以一次讀取鍵盤滑鼠所有按鍵狀態
首先使用Call Library Function Node元件,按滑鼠右鍵從選單中點選config...進入設定畫面,Library name or path設定為user32.DLL,Function name設定為GetKeyboardState
切換到Parameters畫面,內定的return type那一項保持原樣不變更。接下來要新增幾項函數
新增ByteArray項目,格式設定為U8數值陣列。這一項是用來輸出鍵盤滑鼠按鍵狀態,按鍵狀態以0或1的數值表示
新增size項目,格式設定為I32格式數值。這一是設定輸出資料長度,資料總長度是256
全部函數新增完成後按OK結束設定
完成程式
如何知道陣列中哪個點代表哪個按鍵?經過用標準鍵盤實測整理如下表:
注意:除了Num Lock、Scroll Lock、Caps Lock這3個按鍵有實體燈號可以對應狀態外,其餘按鍵沒有。且所有按鍵都是按一次變化狀態後保持,要等到按下一次還會再變化。所以這個程式只能用來偵測按鍵是否有動作而已,動作後的0或1狀態是不確定的
另外在Windows 7底下,這個API程式會錯誤,無法讀到資料
文章標籤
全站熱搜
留言列表