This link包含有关如何使用user32.dll中的mouse_event函数的有用信息
根据该链接,我知道我可以通过执行以下操作滚动:
[DllImport("user32.dll")]
public static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
public void Scroll(){
// this will cause a vertical scroll
mouse_event(0x0800, 0, 0, 500, 0);
}
public void Click(){
// this will cause a left mouse click
mouse_event(0x0002, 0, 0, 0, 0);
Thread.Sleep(1);
mouse_event(0x0004, 0, 0, 0, 0);
}
// etc...
无论如何,如果查看该链接,它不包含MOUSEEVENTF_HWHEEL的int值。我希望能够使用水平滚动。如何使用move_event创建水平滚轮运动?
答案 0 :(得分:3)
如果查看您提供的相同链接,您会看到:
注意此功能已被取代。请改用SendInput。
如果查看SendInput的文档,您会发现可以发送INPUT结构数组。如果查看INPUT的文档,您会看到可以发送键盘(KEYBDINPUT)或鼠标输入(MOUSEINPUT)。
最后,MOUSEINPUT的文档说您可以使用 MOUSEEVENTF_HWHEEL 。
Windows Vista:如果dwFlags包含MOUSEEVENTF_HWHEEL,则dwData指定车轮移动量。正值表示车轮向右旋转;负值表示车轮向左旋转。
因此,您应该使用SendInput
。它有点复杂,但您可以使用它来水平滚动。您可以查看PInvoke page for SendInput以获取示例。
答案 1 :(得分:1)
MOUSEEVENTF_HWHEEL
的值为0x1000。例如:
// this will cause a horizontal scroll to the right
mouse_event(0x1000, 0, 0, 200, 0);