Getkeystate没有返回正确的值?

伙计们坚持让我的脑袋围着getkeyboardstate()函数和getkeystate()函数

我想告诉如果箭头键被按下,如果他们然后退出子。

Public Declare PtrSafe Function GetKeyState Lib "user32" (pbKeyState As Byte) As Long 

我使用以上,然后使用下面的一个子;

 GetKeyState(44) 

我正在看看是否按下了printscreen,但它似乎不会返回0

我究竟做错了什么? 有人知道吗?

这似乎不是你的问题。

如果我运行这个:

 Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer Sub luxation() For j = 1 To 300 For i = 1 To 100000 If (GetAsyncKeyState(vbKeyA)) Then MsgBox "Got an a" Exit Sub End If If (GetAsyncKeyState(vbKeyPrint)) Then MsgBox "Got PrintScreen" Exit Sub End If If (GetAsyncKeyState(vbKeySnapshot)) Then MsgBox "Got snap" Exit Sub End If Next i Next j MsgBox "Failed" End Sub 

在我的老人戴尔,如果我没有按键,它会循环约30秒。

如果我触摸A键,我会得到相应的信息。

如果我触摸PrntScr键,我会看到快照消息,而不是PrintScreen消息。

所以至less在我的戴尔,我需要使用vbKeySnapshot来捕获PrntScr键。