VB 中如何控制鼠标移动
答案:3 悬赏:0 手机版
解决时间 2021-04-04 11:22
- 提问者网友:遮云壑
- 2021-04-03 18:42
VB 中如何控制鼠标移动
最佳答案
- 五星知识达人网友:西风乍起
- 2021-04-03 20:13
例:单击Command1时鼠标会到(500,500)这个点作鼠标左键单击动作。
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
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)
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Sub Command1_Click()
SetCursorPos 500, 500
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub
关于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)
参数:
dwFlags:标志位集,指定点击按钮和鼠标动作的多种情况。此参数里的各位可以是下列值的任何合理组合:
MOUSEEVENTF_MOVE &H1,移动鼠标
MOUSEEVENTF_LEFTDOWN &H2,模拟鼠标左键按下
MOUSEEVENTF_LEFTUP &H4,模拟鼠标左键抬起
MOUSEEVENTF_RIGHTDOWN &H8,模拟鼠标右键按下
MOUSEEVENTF_RIGHTUP &H10,模拟鼠标右键抬起
MOUSEEVENTF_MIDDLEDOWN &H20,模拟鼠标中键按下
MOUSEEVENTF_MIDDLEUP &H40,模拟鼠标中键抬起
MOUSEEVENTF_ABSOLUTE &H8000,标示是否采用绝对坐标 )
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
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)
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Sub Command1_Click()
SetCursorPos 500, 500
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub
关于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)
参数:
dwFlags:标志位集,指定点击按钮和鼠标动作的多种情况。此参数里的各位可以是下列值的任何合理组合:
MOUSEEVENTF_MOVE &H1,移动鼠标
MOUSEEVENTF_LEFTDOWN &H2,模拟鼠标左键按下
MOUSEEVENTF_LEFTUP &H4,模拟鼠标左键抬起
MOUSEEVENTF_RIGHTDOWN &H8,模拟鼠标右键按下
MOUSEEVENTF_RIGHTUP &H10,模拟鼠标右键抬起
MOUSEEVENTF_MIDDLEDOWN &H20,模拟鼠标中键按下
MOUSEEVENTF_MIDDLEUP &H40,模拟鼠标中键抬起
MOUSEEVENTF_ABSOLUTE &H8000,标示是否采用绝对坐标 )
全部回答
- 1楼网友:孤独的牧羊人
- 2021-04-03 22:06
用两个API函数,SetCurPos 和GetCurPos ,用这两个API需要声明一个PointApi数据类型,用VB企业版的的API浏览器可以查到函数和数据类型的声明。
移动鼠标可以用 SetCurPos ()这个函数(以坐标的形式更改鼠标的位置),获取鼠标当前位置可以用GetCurPos()
移动鼠标可以用 SetCurPos ()这个函数(以坐标的形式更改鼠标的位置),获取鼠标当前位置可以用GetCurPos()
- 2楼网友:一秋
- 2021-04-03 20:39
我怎么感觉,LS两位有点答非所问。呵呵、你想只是改变窗体中的位置不是屏幕上的位置的话。
一:你在X,Y坐标是分别加上 me.width和me.height加上窗体的横坐标和纵坐标不就是吧鼠标移动到窗体的指定位置了么。
二:VB默认单位为缇,普通的分辨率一般叫像素,1像素=15缇
所以窗体的长度换算成像素的话应该是me.width/15,自己测试下。。这样就可以实现VB的单位转为屏幕像素单位了。
一:你在X,Y坐标是分别加上 me.width和me.height加上窗体的横坐标和纵坐标不就是吧鼠标移动到窗体的指定位置了么。
二:VB默认单位为缇,普通的分辨率一般叫像素,1像素=15缇
所以窗体的长度换算成像素的话应该是me.width/15,自己测试下。。这样就可以实现VB的单位转为屏幕像素单位了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |