如何模拟鼠标滚动

How to simulate mouse scrolling

我正在做一个项目,我想帮助模拟鼠标滚动的值,我一直在研究的路径是这个。

Set WX = CreateObject("DynamicWrapperX")
     
WX.Register "user32.dll", "GetActiveWindow", "r=l"
WX.Register "user32.dll", "PostMessageA", "i=hlll", "f=s", "r=l"
WX.Register "user32.dll", "ShowScrollBar", "i=hlp" 
    
WX.Register "user32.dll", "SetScrollPos", "i=hlll" 
     
WX.ShowScrollBar WX.GetActiveWindow(), 3, "1" 
WX.SetScrollPos 0, 1, 100000, 1
WX.PostMessageA WX.GetActiveWindow(), 277, 4 + 65536 * 100, 0

我使用 dynamicwrapperx 得到了一些东西,但是代码创建了一个新的卷轴,而这不是我需要的

我不认为 VBScript 真的是您想要用来执行此操作的脚本语言。像 AutoHotKey 这样的东西可能更适合。

https://www.autohotkey.com/

AutoHotKey 在 Windows 环境中控制屏幕上的内容时更加灵活。

https://www.autohotkey.com/docs/commands/Send.htm <-- 这个向您展示了如何发送可能控制 window 的滚动条的键盘命令。在这种情况下,您希望发送制表符以移动到滚动条(假设您有一个空的记事本 window),然后按向下箭头键。

另请注意,在上面的 VBScript 示例中,您拼错了记事本。这可能会导致您在尝试让脚本执行任何操作时遇到一些问题。

我设法使用 DynamicWrapperX 解决了这个问题。

Sub CommandButton1_Click()
    Set WX = CreateObject("DynamicWrapperX")    
    WX.Register "user32.dll", "mouse_event", "i=uuulu", "f=s"
    WX.mouse_event 2048, 0, 0, -10, 0
End Sub