سلام.
يکي از دوستان پيغامي فرستاده بودند و در مورد به دست گرفتن کنترل موس و کيبرد ( شبيه سازي رويداد ها، ارسال کلیک و دکمه های کیبورد... ) از بنده سوال کرده بودند . من هم ديدم که اين موضوع مهمي هست و ممکن مشکل دوستان ديگري هم باشه . واسه همين تصميم گرفتم اين آموزش رو به صورت تاپيک براي همه قرار بدم .
براي شبيه سازي رويداد هاي موس کافيه یک تایمر به فرم اضافه کنید و کد هاي زير رو در قسمت جنرال فرم کپي کنيد و برنامه رو اجرا کنيد :
کد:
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10
Private Sub Form_Load()
Timer1.Interval = 1000
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Print Time
End Sub
Private Sub Timer1_Timer()
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, cButt, dwEI
End Sub
براي شبيه سازي رويداد هاي کیبورد هم کافيه کد هاي زير رو در قسمت جنرال فرم کپي کنيد و برنامه رو اجرا کنيد :
کد:
Const VK_H = 72
Const VK_E = 69
Const VK_L = 76
Const VK_O = 79
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Sub Form_KeyPress(KeyAscii As Integer)
Me.Print Chr$(KeyAscii);
End Sub
Private Sub Form_Paint()
Me.Cls
keybd_event VK_H, 0, 0, 0 ' press H
keybd_event VK_H, 0, KEYEVENTF_KEYUP, 0 ' release H
keybd_event VK_E, 0, 0, 0 ' press E
keybd_event VK_E, 0, KEYEVENTF_KEYUP, 0 ' release E
keybd_event VK_L, 0, 0, 0 ' press L
keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 ' release L
keybd_event VK_L, 0, 0, 0 ' press L
keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 ' release L
keybd_event VK_O, 0, 0, 0 ' press O
keybd_event VK_O, 0, KEYEVENTF_KEYUP, 0 ' release O
End Sub
امیدوارم مطلب مفید واقع بشه .
موفق و پیروز باشید .