View Full Version : سوال: نحوه از کار انداختن دکمه راست کلید روی صفحه کیبورد
Hassan2500
پنج شنبه 04 خرداد 1391, 22:21 عصر
سلام
من این کد رو نوشتم که دکمه راست کلیک روی کیبورد از کار بیفته ولی باز عمل میکنه
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 93 Then KeyAscii = 0
End Sub
just4froum
پنج شنبه 04 خرداد 1391, 23:09 عصر
خوب طبیعی :
1- اصلا راست کلیک روی کیبرد keyascii نداره اون Keycode
2- keydown هم بعد از تایپ یا انجام کار کلید اتفاق می افته.
شاید بشه یه همچین کلی نوشت ولی از کار نمیندازه می بندتش.
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 93 Then Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Timer1.Enabled = False
keybd_event vbKeyEscape, 0, 0, 0
keybd_event vbKeyEscape, 0, KEYEVENTF_KEYUP, 0
End Sub
راستی interval تایمرو بگذارید 100
Hassan2500
پنج شنبه 04 خرداد 1391, 23:18 عصر
از کار نیفتاد منظورم کلید وسط کنترل و استارت سمت راست کیبورد است من میخوام برای کلیه تکستهای فرم عمل نکنه
امین مستانی
جمعه 05 خرداد 1391, 12:54 عصر
سلام
با تغییر کد جناب just4froum اینجوری میشه
Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Integer
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
If GetAsyncKeyState(93) Then
Timer1.Enabled = True
End If
End Sub
Private Sub Timer1_Timer()
Timer1.Enabled = False
keybd_event vbKeyEscape, 0, 0, 0
keybd_event vbKeyEscape, 0, KEYEVENTF_KEYUP, 0
End Sub
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.