在UWP中模拟滚动输入

时间:2018-01-07 02:58:34

标签: uwp

我正在尝试创建一款可以模拟键盘和键盘的应用。老鼠。到目前为止,我已Windows.UI.Input.Preview.InjectionInjectedInputMouseInfo发送了InputInjector

但是我似乎无法生成滚动输入,我所能做的就是移动鼠标并按下它的按钮。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

可以使用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属性而不是常量。

更新

我写了一篇关于输入注入的简短article on my blog,它也描述了滚动。