求帮忙用VB编一个鼠标键盘连点的小程序!~

谁能帮我用vb编一个小程序按F11开启和停止每2秒钟,鼠标“左键”和键盘“Enter”自动点击一次最好能把源工程发给我,谢谢!~或者直接把语言剪贴回复给我也可以~... 谁能帮我用vb编一个小程序
按F11开启和停止

每2秒钟,鼠标“左键”和键盘“Enter”自动点击一次
最好能把源工程发给我,谢谢!~
或者直接把语言剪贴回复给我也可以~
展开
 我来答
junyfm
推荐于2016-04-26 · TA获得超过163个赞
知道小有建树答主
回答量:184
采纳率:0%
帮助的人:106万
展开全部
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)'声名API
'定义变量: 
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 Command1_Click()
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0   '鼠标左键单击事件
End Sub

Private Sub Command2_Click()
mouse_event MOUSEEVENTF_RIGHTDOWN Or MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 '鼠标右键单击事件 
End Sub

Private Sub Command3_Click()
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
'-------------------------------------'两次连续的鼠标左键单击事件 构成一次鼠标双击事件 
End Sub
'================================前台模拟================================

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String)  As Long'-查找父句柄
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String)  As Long'-查找子句柄
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)  As Long'-Post后台消息
Private Const BM_CLICK = &HF5             '定义单击常量

Private Sub Form_Load()
Shell "calc.exe"                          '打开机算器
End Sub

Private Sub Command1_Click()
Dim a As Long
Dim b As Long
a = FindWindow(vbNullString, "计算器")    '查找父句柄
b = FindWindowEx(a, 0, vbNullString, "1") '查找子句柄,也就是按扭1这个句柄
PostMessage b, BM_CLICK, 0, 0             '单击按钮
End Sub
'================================后台模拟================================
'以下是键盘模拟
Declare Function SendInput Lib "user32.dll" (ByVal nInputs As Long, pInputs As GENERALINPUT, ByVal cbSize As Long) As Long
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Type GENERALINPUT
      dwType As Long
      xi(0 To 23) As Byte
End Type
Type KEYBDINPUT
     wVk As Integer
     wScan As Integer
     dwFlags As Long
     time As Long
     dwExtraInfo As Long
End Type
Const INPUT_KEYBOARD = 1
Sub MySendKey(bkey As Long)
'参数bkey传入要模拟按键的虚拟码即可模拟按下指定键
Dim GInput(0 To 1) As GENERALINPUT
Dim KInput As KEYBDINPUT
KInput.wVk = bkey     '你要模拟的按键
KInput.dwFlags = 0 '按下键标志
GInput(0).dwType = INPUT_KEYBOARD
CopyMemory GInput(0).xi(0), KInput, Len(KInput) '这个函数用来把内存中KInput的数据复制到GInput
KInput.wVk = bkey
KInput.dwFlags = KEYEVENTF_KEYUP     ' 释放按键
GInput(1).dwType = INPUT_KEYBOARD ' 表示该消息为键盘消息
CopyMemory GInput(1).xi(0), KInput, Len(KInput)
'以上工作把按下键和释放键共2条键盘消息加入到GInput数据结构中
SendInput 2, GInput(0), Len(GInput(0))       '把GInput中存放的消息插入到消息列队
End Sub
'===============================================以上在模块中==============================================================
'===============================================以下在窗体中==============================================================
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()
Text1.SetFocus
'Sleep 1000
Call MySendKey(2)   '2为虚拟码

End Sub


'虚拟码:   http://baike.baidu.com/link?url=p7B5X-v2RweBEFQo44pWWrb1Ac0mNFfmObRZTbSuVMGx6VgV55Fdf-3ppkzq8F0y
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式