執行的結果和預期的不一樣?
看到執行結果,小編笑不出來了,這樣寫當第一次按下F3鍵放開之後,key的值一直都是F3,也就是說不管你松沒松開f3鍵,If key <> 114 Then這一句都不會成立,WaitKey 指令可以擷取你按下了什麼鍵,但是卻不能擷取這個按鍵的一個狀态。按一次、按很多次、松開了、還按着、WaitKey 指令不區分這些,它就傳回一個鍵值。
怎麼辦怎麼辦?這時候小編腦子裡飄過了很多想法,最後想到了api,通過調用api的 GetAsyncKeyState 函數( Get-得到 Async-端口 KeyState-鍵盤按鍵狀态 合起來就是——擷取鍵盤按鍵狀态的端口) 來擷取指定鍵的一個狀态,根據擷取到的狀态,就能得知指定鍵是按下還是松開的。瞬間覺得自己又變聰明了,哦呵呵,有了想法馬上實施行動,先了解下 GetAsyncKeyState 函數的聲明和傳回值:
GetAsyncKeyState 函數 的聲明,傳回值
聲明
Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer
傳回值
GetAsyncKeyState 傳回值等于1 說明鍵已經被按過并且目前是松開的狀态 GetAsyncKeyState 傳回值等于0 說明鍵是松開的狀态 GetAsyncKeyState 傳回值等于- 32767 說明鍵是按下的狀态