我要实现当某个键盘上的字母键被按下时自动记数+1,在label1上显示出来。
但因为是通宵搞,头都搞晕了,而且今天就要交了,请各位大虾帮忙看下!
(代码写的不是很好,请不要见笑。:)
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As Integer
Private Function MyHotKey(vKeyCode) As Boolean
MyHotKey = ((GetAsyncKeyState(vKeyCode) < 0))
End FunctionPrivate Sub Form_Load()
Dim n As Integer
n = 0
Label1.Caption = n
End SubPrivate Sub Timer1_Timer()
If MyHotKey(vbKeyA) Or MyHotKey(vbKeyB) Or MyHotKey(vbKeyC) Or MyHotKey(vbKeyD) Or MyHotKey(vbKeyE) Or MyHotKey(vbKeyF) Or MyHotKey(vbKeyG) Or MyHotKey(vbKeyH) Or MyHotKey(vbKeyI) Or MyHotKey(vbKeyJ) Or MyHotKey(vbKeyK) Or MyHotKey(vbKeyL) Or MyHotKey(vbKeyM) Or MyHotKey(vbKeyN) Or MyHotKey(vbKeyO) Or MyHotKey(vbKeyP) Or MyHotKey(vbKeyQ) Or MyHotKey(vbKeyR) Or MyHotKey(vbKeyS) Or MyHotKey(vbKeyT) Or MyHotKey(vbKeyU) Or MyHotKey(vbKeyV) Or MyHotKey(vbKeyW) Or MyHotKey(vbKeyX) Or MyHotKey(vbKeyY) Or MyHotKey(vbKeyZ) Then ‘这一段写的比较蠢一点,哈哈
n = n + 1
Label1.Caption = n
End If
Timer1.Enabled = False
End SubPrivate Sub Timer2_Timer()
Timer1.Enabled = True
End Sub
但因为是通宵搞,头都搞晕了,而且今天就要交了,请各位大虾帮忙看下!
(代码写的不是很好,请不要见笑。:)
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As Integer
Private Function MyHotKey(vKeyCode) As Boolean
MyHotKey = ((GetAsyncKeyState(vKeyCode) < 0))
End FunctionPrivate Sub Form_Load()
Dim n As Integer
n = 0
Label1.Caption = n
End SubPrivate Sub Timer1_Timer()
If MyHotKey(vbKeyA) Or MyHotKey(vbKeyB) Or MyHotKey(vbKeyC) Or MyHotKey(vbKeyD) Or MyHotKey(vbKeyE) Or MyHotKey(vbKeyF) Or MyHotKey(vbKeyG) Or MyHotKey(vbKeyH) Or MyHotKey(vbKeyI) Or MyHotKey(vbKeyJ) Or MyHotKey(vbKeyK) Or MyHotKey(vbKeyL) Or MyHotKey(vbKeyM) Or MyHotKey(vbKeyN) Or MyHotKey(vbKeyO) Or MyHotKey(vbKeyP) Or MyHotKey(vbKeyQ) Or MyHotKey(vbKeyR) Or MyHotKey(vbKeyS) Or MyHotKey(vbKeyT) Or MyHotKey(vbKeyU) Or MyHotKey(vbKeyV) Or MyHotKey(vbKeyW) Or MyHotKey(vbKeyX) Or MyHotKey(vbKeyY) Or MyHotKey(vbKeyZ) Then ‘这一段写的比较蠢一点,哈哈
n = n + 1
Label1.Caption = n
End If
Timer1.Enabled = False
End SubPrivate Sub Timer2_Timer()
Timer1.Enabled = True
End Sub
Private Ct as Integer
Private Sub Form_KeyPress(KeyAscii As Integer)
if (Keyascii >= asc("A") and Keyascii <= asc("Z")) Or _
(Keyascii >= asc("a") and Keyascii <= asc("z")) Then
Ct = Ct + 1
end if
’要显示就一句话: Me.Label1.Caption = Cstr(Ct)
End Sub
只要按任意的英文字母键就可以加计数了。
再想想,帮帮忙啊!
MyHotKey = ((GetAsyncKeyState(vKeyCode) < 0))
End FunctionPrivate Sub Form_Load()
Label1.Caption = 0
End SubPrivate Sub Timer1_Timer()
Dim KeyASC As Integer
For KeyASC = asc("A") To KeyASC = asc("Z")
If MyHotKey(KeyASC) = True Then
Label1.Caption = CInt(Label1.Caption) + 1
'Exit For'如果同时按几个键,也只计算一次
End If
Next KeyASC
End Sub'Timer2应该是不需要的
那TIMER1的INTERVAL该设为多少呢?
求求junki(『.NET技术争霸天下』)你这位大虾了....
55555....
我下午就要交了,帮人帮到底嘛,可不可以帮我调试一下,我这里还是不行啊.....