问题描述
- 请问下vb.net中有关mouse_event的问题?
-
如题,我想用vb.net实现模拟滚轮移动的功能。一开始就是打算用mouse_event中的
MOUSEEVENTF_WHEEL,但是最后没有成功,请问下
上网查了些资料。有的地方说MOUSEEVENTF_WHEEL是模拟滚轮移动的
有的地方说是模拟滚轮按下并抬起,请问到时哪一个是对的,我在MSDN上看的有关
MOUSEEVENTF_WHEEL的介绍是The user pressed and released the mouse wheel.
应该是按下并抬起,但是dwData得介绍看起来像是模拟移动的,请问那个是对的呢
我的有关代码如下,移动到指定位置是没问题的,但是模拟滚动却没反应mouse_event(MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0) '使用绝对坐标系 'mouse_event(MOUSEEVENTF_MOVE, 600, 150, 0, 0) '移动到指定位置 mouse_event(MOUSEEVENTF_WHEEL, 0, 0, -100, 0) '滚动到指定位置 MessageBox.Show("OK")
解决方案
一些鼠标没有滚轮有3个按键,对于这种鼠标,按下中间的按键,然后移动,来实现滚动,触发的消息和带有滚轮的鼠标直接滚动是一样的。
所以两种说法其实都是对的。
解决方案二:
dwData表明滚动的距离。不知道你说的没有反应什么意思。
解决方案三:
我的意思是,使用MOUSEEVENTF_MOVE时,鼠标位置的确是移动了,这说明整个代码是没问题的,但是我使用MOUSEEVENTF_WHEEL后,却没有滚动到指定位置。正常情况下使用滚轮浏览器界面会上下滚动,但是使用wheel却不会滚动
解决方案四:
刚才又试了一下,如果取消绝对坐标系就可以,不知道是为什么
时间: 2024-09-10 05:39:18