在UWP中模拟滚动输入

在UWP中模拟滚动输入,uwp,Uwp,我正在尝试做一个应用程序,将模拟键盘和鼠标。到目前为止,我已经通过Windows.UI.Input.Preview.Injection将InjectedInputMouseInfo发送到InputInjector来实现这一点 然而,我似乎无法生成滚动输入,我所能做的就是移动鼠标并按下按钮。无法执行此操作吗?可以使用MouseData属性。此属性指定鼠标滚轮滚动的幅度。然而,令人惊讶的是,该属性被定义为uint,这意味着可以只向一个方向滚动。幸运的是,情况并非如此,如果让负值溢出,它们将导致向正确

我正在尝试做一个应用程序,将模拟键盘和鼠标。到目前为止,我已经通过
Windows.UI.Input.Preview.Injection
InjectedInputMouseInfo
发送到
InputInjector
来实现这一点


然而,我似乎无法生成滚动输入,我所能做的就是移动鼠标并按下按钮。无法执行此操作吗?

可以使用
MouseData
属性。此属性指定鼠标滚轮滚动的幅度。然而,令人惊讶的是,该属性被定义为
uint
,这意味着可以只向一个方向滚动。幸运的是,情况并非如此,如果让负值溢出,它们将导致向正确方向滚动

InjectedInputMouseInfo info = new InjectedInputMouseInfo();
info.MouseOptions = InjectedInputMouseOptions.Wheel;
unchecked
{
    info.MouseData = (uint)-500; //scroll down
}

InputInjector inputInjector = InputInjector.TryCreate();
inputInjector.InjectMouseInput(new[] { info });
需要未选中的块以避免编译时错误,因为作为常量,
-500
不能转换为
uint
。通过引入一个局部
int
变量,然后将该变量指定给
MouseData
属性,而不是常量,可以避免这样做

更新
我写了一篇关于输入注入的短文,其中也描述了滚动。

可以使用
MouseData
属性。此属性指定鼠标滚轮滚动的幅度。然而,令人惊讶的是,该属性被定义为
uint
,这意味着可以只向一个方向滚动。幸运的是,情况并非如此,如果让负值溢出,它们将导致向正确方向滚动

InjectedInputMouseInfo info = new InjectedInputMouseInfo();
info.MouseOptions = InjectedInputMouseOptions.Wheel;
unchecked
{
    info.MouseData = (uint)-500; //scroll down
}

InputInjector inputInjector = InputInjector.TryCreate();
inputInjector.InjectMouseInput(new[] { info });
需要未选中的块以避免编译时错误,因为作为常量,
-500
不能转换为
uint
。通过引入一个局部
int
变量,然后将该变量指定给
MouseData
属性,而不是常量,可以避免这样做

更新 我写了一篇关于输入注入的短文,其中也描述了滚动