急在线等!!!!!!!!!!如何实现自动点激鼠标右键或双激左键? 急在线等!!!!!!!!!!如何实现自动点激鼠标右键或双激左键? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有个api可以模拟一个鼠标事件,但是叫什么名字我记不得了。你找找看另外,为什么要这么做? '【说明】' 模拟一次鼠标事件'【备注】' 进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度'【参数表】' dwFlags -------- Long,下述标志的一个组合' MOUSEEVENTF_ABSOLUTE' dx和dy指定鼠标坐标系统中的一个绝对位置。在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元 -' MOUSEEVENTF_MOVE 移动鼠标' MOUSEEVENTF_LEFTDOWN 模拟鼠标左键按下' MOUSEEVENTF_LEFTUP 模拟鼠标左键抬起' MOUSEEVENTF_RIGHTDOWN 模拟鼠标右键按下' MOUSEEVENTF_RIGHTUP 模拟鼠标右键抬起' MOUSEEVENTF_MIDDLEDOWN 模拟鼠标中键按下' MOUSEEVENTF_MIDDLEUP 模拟鼠标中键抬起' dx ------------- Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定水平方向的绝对位置或相对运动'' dy ------------- Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对运动' cButtons ------- Long,未使用' dwExtraInfo ---- Long,通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可用的值取决于特定的驱动程序Option Explicit 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 _ )'Option_Tag标示选择了哪一种模拟事件Dim Option_Tag As Integer'OnTest标示是否处于模拟状态,以便我们停止模拟Dim OnTest As Boolean'对API变量的定义Const MOUSEEVENTF_LEFTDOWN = &H2Const MOUSEEVENTF_LEFTUP = &H4Const MOUSEEVENTF_MIDDLEDOWN = &H20Const MOUSEEVENTF_MIDDLEUP = &H40Const MOUSEEVENTF_MOVE = &H1Const MOUSEEVENTF_ABSOLUTE = &H8000Const MOUSEEVENTF_RIGHTDOWN = &H8Const MOUSEEVENTF_RIGHTUP = &H10'控制 模拟的开始与结束Private Sub Command1_Click()'如果不处于模拟状态If OnTest = False ThenCommand1.Caption = "快停下来吧"Timer1.Enabled = TrueOnTest = True'如果处于模拟状态ElseCommand1.Caption = "试一试"Timer1.Enabled = FalseOnTest = FalseEnd IfEnd Sub'窗体加载时一些变量需要设置Private Sub Form_Load()Option_Tag = 1Timer1.Enabled = FalseOnTest = FalseEnd Sub'选择了模拟“鼠标左键单击事件”Private Sub Option1_Click()Option_Tag = 1 '左键单击事件Option2.Value = FalseOption3.Value = FalseEnd Sub'选择了模拟“鼠标右键单击事件”Private Sub Option2_Click()Option_Tag = 2 '右键单击事件Option1.Value = FalseOption3.Value = FalseEnd Sub'选择了模拟“鼠标双击事件”Private Sub Option3_Click()Option_Tag = 3 '双击事件Option1.Value = FalseOption2.Value = FalseEnd Sub'每隔一秒中模拟一次鼠标事件Private Sub Timer1_Timer()If Option_Tag = 1 Then '调用了mouse_event函数,其参数的设置见前面说明 '如果同时要模拟两个鼠标事件,可以用 Or 将两个参数连接 '这里是 鼠标左键按下 和松开两个事件的组合即一次单击 mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0ElseIf Option_Tag = 2 Then '模拟鼠标右键单击事件 mouse_event MOUSEEVENTF_RIGHTDOWN Or MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0Else '两次连续的鼠标左键单击事件 构成一次鼠标双击事件 mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0End IfEnd Sub vsFlexGrid 的用法 窗体自动加载问题 关于“一个全局键盘、鼠标HOOK的DLL源码” 请问,如何用vb控制 excel 的单元格的固定高度和固定宽度!! 用ADO的办法如何判断一个Access的.mdb文件是否已经open或close 今天心情不好,共享原代码 vb有没有办法写在我断线后,这些程序同时关闭。 一个奇怪的问题? 求JBIG的算法 关于日期的SQL语句的问题,在线等待 小弟想学VB,各位大哥帮帮忙! shell的问题,我用shell app,0打开一个程序,窗体是隐藏的,我如何让这个程序的窗体显示
另外,为什么要这么做?
' 模拟一次鼠标事件'【备注】
' 进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度'【参数表】
' dwFlags -------- Long,下述标志的一个组合
' MOUSEEVENTF_ABSOLUTE
' dx和dy指定鼠标坐标系统中的一个绝对位置。在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元 -
' MOUSEEVENTF_MOVE 移动鼠标
' MOUSEEVENTF_LEFTDOWN 模拟鼠标左键按下
' MOUSEEVENTF_LEFTUP 模拟鼠标左键抬起
' MOUSEEVENTF_RIGHTDOWN 模拟鼠标右键按下
' MOUSEEVENTF_RIGHTUP 模拟鼠标右键抬起
' MOUSEEVENTF_MIDDLEDOWN 模拟鼠标中键按下
' MOUSEEVENTF_MIDDLEUP 模拟鼠标中键抬起
' dx ------------- Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定水平方向的绝对位置或相对运动'' dy ------------- Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对运动' cButtons ------- Long,未使用' dwExtraInfo ---- Long,通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可用的值取决于特定的驱动程序
Option Explicit
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 _
)'Option_Tag标示选择了哪一种模拟事件
Dim Option_Tag As Integer
'OnTest标示是否处于模拟状态,以便我们停止模拟
Dim OnTest As Boolean
'对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()'如果不处于模拟状态
If OnTest = False Then
Command1.Caption = "快停下来吧"
Timer1.Enabled = True
OnTest = True
'如果处于模拟状态
Else
Command1.Caption = "试一试"
Timer1.Enabled = False
OnTest = False
End If
End Sub'窗体加载时一些变量需要设置
Private Sub Form_Load()
Option_Tag = 1
Timer1.Enabled = False
OnTest = False
End Sub'选择了模拟“鼠标左键单击事件”
Private Sub Option1_Click()
Option_Tag = 1 '左键单击事件
Option2.Value = False
Option3.Value = False
End Sub'选择了模拟“鼠标右键单击事件”
Private Sub Option2_Click()
Option_Tag = 2 '右键单击事件
Option1.Value = False
Option3.Value = False
End Sub'选择了模拟“鼠标双击事件”
Private Sub Option3_Click()
Option_Tag = 3 '双击事件
Option1.Value = False
Option2.Value = False
End Sub'每隔一秒中模拟一次鼠标事件
Private Sub Timer1_Timer()
If Option_Tag = 1 Then
'调用了mouse_event函数,其参数的设置见前面说明
'如果同时要模拟两个鼠标事件,可以用 Or 将两个参数连接
'这里是 鼠标左键按下 和松开两个事件的组合即一次单击
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
ElseIf Option_Tag = 2 Then
'模拟鼠标右键单击事件
mouse_event MOUSEEVENTF_RIGHTDOWN Or MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0
Else
'两次连续的鼠标左键单击事件 构成一次鼠标双击事件
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End If
End Sub