PDA

View Full Version : سوال: زیر نظر گرفتن (کنترل کردن) KeyPress در یک Module (همراه نمونه)



gilsoft
جمعه 19 آبان 1391, 10:39 صبح
سلام دوستان

ابتدا ماجول زیر را ملاحظه بفرمایید :


Public Function Delay(ByVal Second As Double, Optional ByVal EscToCancel As Boolean = False) As Boolean
If EscToCancel = True Then
If KeyPress = ChrW(27) Then ' chrw(27) = {Esc} Key
'
' بجای KeyPress چه کدی بزارم
'
Exit Function
End If
End If
Dim Finish As Double = Second + Microsoft.VisualBasic.DateAndTime.Timer
Do While Microsoft.VisualBasic.DateAndTime.Timer < Finish : Loop
Delay = True
End Function 'Delay()


در سطر 5 چه کدی باید بنویسم ؟ :متفکر:
آیا همچین چیزی امکان پذیر هست ؟ :متفکر:

ممنون میشم یه راهنمایی کنید .... :لبخندساده:

مهرداد صفا
شنبه 20 آبان 1391, 16:29 عصر
سلام
در مورد توابع GetKeyboardState, GetKeyState ,GetAsyncKeyState در msdn یا همین تالار تحقیق کنید.

gilsoft
سه شنبه 23 آبان 1391, 19:07 عصر
سلام دوستان

من مشکلم با کد زیر حل شد :لبخندساده:

گفتم تو همین تاپیک بزارم تا شاید دوست دیگه ای بتونه ازش استفاده کنه ...


Module Module1
Public Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Int32) As Short
Public Function Delay(ByVal Second As Double, ByVal EscToCancel As Boolean) As Boolean
Delay = False
If EscToCancel = True Then
Dim Finish As Double = Second + VB.DateAndTime.Timer
Do While VB.DateAndTime.Timer < Finish
If GetAsyncKeyState(27) Then Exit Function
Loop
Delay = True
Else
System.Threading.Thread.Sleep(Second * 1000)
Delay = True
End If
End Function 'Delay()
End Module

موفق باشید