問一個NI AE也沒辦法給我的問題…Keyboard鍵盤 keycode的擷取

我打電話給NI應用工程師,經過確認後他們沒辦法解決,所以只能上來這裏碰碰運氣,看有沒有不出世的高人可以幫忙。

我要測試鍵盤的每個鍵的功能。大家都知道可以用『Basic Input Demo.vi』來做(它可呼叫C:\Program Files\National Instruments\LabVIEW 8.2\resource\lvinput.*這個dll來工作)。

可是其實它不是每個鍵都能擷取的。比方說『PrintScreen』這個鍵,在這個VI就沒反應。更別說是一些新的鍵盤,還加了放大音量、跳下一首…等熱鍵。

我查了相關資料,其實每個鍵都有『keycode』這種碼,當按鍵被按下時,keycode會透過USB(或PS/2)介面傳回給電腦。可是接下來就沒有相關資訊了。所有相關應用都是VC的example。我問了幾位NI的AE,他們都說沒辦法處理。

請問各位高人,有人可以幫我做一個VI或dll,來讓我可以擷取所有鍵的訊號,進而可以分辨該鍵是否正常嗎?謝謝了!

可能要自己呼叫Windows API,可以查一下Windows API的相關書籍看函數是什麼,以下是相關介紹,大概是呼叫user32.dll,可以知道的是PrintScreen的值是42,以下是相關連結提供給你參考

http://tlcheng.twbbs.org/TLCheng/WinAPI/winapi.asp?action=Search

http://bbs.vrbrothers.com/viewthread.php?tid=13932&extra=&page=1

http://ew88.net/Tech/UpFileTech/2004/09/07/200497164259133.htm

 

可以包成dll供小弟使用嗎?(因為研究不出來…)

[QUOTE=eric000]

可以包成dll供小弟使用嗎?(因為研究不出來…)

[/QUOTE]

我只是提供方法給你參考而已

發個例子,試試看,沒有屏蔽功能,須要的話,自行加個HOOK就可以

Untitled 1.vi

jianqinglangzi39442.6085648148

[QUOTE=jianqinglangzi]

發個例子,試試看,沒有屏蔽功能,須要的話,自行加個HOOK就可以

Untitled 1.vi

[/QUOTE]

 

Hi jianqinglangzi,

您提供的功能是可以用的!謝謝您!幫了我很大的忙。

不過還是沒有擋下key功能的功能。比方說,我按『F1』,還是會出現labview help,按左下角ctrl右邊的window旗標,還是會跳出『登出/關機』。您有說過用『hook』來處理,這方面小弟沒學過,可否請您惠賜一個example供我參考學習?謝謝您!