PDA

View Full Version : حرفه ای: مشکل عجیب با تابع GetAsyncKeyState



just4froum
چهارشنبه 23 شهریور 1390, 15:06 عصر
intvertal تایمر 10 است

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Timer1_Timer()
Dim m As Integer
If GetAsyncKeyState(vbKeyDecimal) <> 0 Then m = GetAsyncKeyState(vbKeyDecimal)
If m <> 0 Then MsgBox "."
End Sub


چرا کد بالا با کلید دات (.) که در قسمت numpad ها است کار می کند اما با کلید دات (.) که پایین کلید L است کار نمی کند





با تشکر از همه .

setroyd
چهارشنبه 23 شهریور 1390, 15:39 عصر
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Private Sub Form_Load()
Timer1.Interval = 1
End Sub

Private Sub Timer1_Timer()
Dim x As Integer
For i = 32 To 256
x = GetAsyncKeyState(i)
If x = -32767 Then
If i = 110 Or 190 Then MsgBox "."
If i = 190 Then MsgBox "."
End If
Next
End Sub

برای این If i = 110 Or 190 Then MsgBox "." از or استفاده نکردم تا در شروع msgbox نده پس از or استفاده نکن و به صورت if بنویس .

setroyd
چهارشنبه 23 شهریور 1390, 15:41 عصر
ببخشید کد رو اشتباه گذاشتم or رو حذف نکردم این کد درسته .

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Private Sub Form_Load()
Timer1.Interval = 1
End Sub

Private Sub Timer1_Timer()
Dim x As Integer
For i = 32 To 256
x = GetAsyncKeyState(i)
If x = -32767 Then
If i = 110 Then MsgBox "."
If i = 190 Then MsgBox "."
End If
Next
End Sub