PDA

View Full Version : آموزش: آموزش شبيه سازي رويداد هاي موس و کيبورد ( ارسال کلیک و ... ) .



butterfly8528
سه شنبه 05 بهمن 1389, 19:03 عصر
سلام.
يکي از دوستان پيغامي فرستاده بودند و در مورد به دست گرفتن کنترل موس و کيبرد ( شبيه سازي رويداد ها، ارسال کلیک و دکمه های کیبورد... ) از بنده سوال کرده بودند . من هم ديدم که اين موضوع مهمي هست و ممکن مشکل دوستان ديگري هم باشه . واسه همين تصميم گرفتم اين آموزش رو به صورت تاپيک براي همه قرار بدم .

براي شبيه سازي رويداد هاي موس کافيه یک تایمر به فرم اضافه کنید و کد هاي زير رو در قسمت جنرال فرم کپي کنيد و برنامه رو اجرا کنيد :


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

امیدوارم مطلب مفید واقع بشه .

موفق و پیروز باشید . :چشمک: