none
如何使用UWP控制鼠标移动和应用程序打开 RRS feed

全部回复

  • 你好,

    UWP 可以通过 InjectedInputMouseInfo  类的 DeltaXDeltaY 属性操作鼠标移动,你可以参考以下代码实现移动功能, 前提是需要添加 inputInjectionBrokered  功能到manifest 中,

    <Package
       ...  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
      IgnorableNamespaces="uap mp rescap">


    <Capabilities>
      <Capability Name="internetClient" />
      <rescap:Capability Name="inputInjectionBrokered" />
    </Capabilities>


    var info = new InjectedInputMouseInfo();
    info.MouseOptions = InjectedInputMouseOptions.Move;
    info.DeltaY = 100; //move down 100 points

    MouseOptions 属性允许我们指定一个行为标识, 其中的   LeftDown 和LeftUp, 可以用来模拟鼠标的点击行为.

    down.MouseOptions = InjectedInputMouseOptions.LeftDown;
     
    var up = new InjectedInputMouseInfo();
    up.MouseOptions = InjectedInputMouseOptions.LeftUp;
     
    InputInjector inputInjector = InputInjector.TryCreate();
    inputInjector.InjectMouseInput(new[] { down, up });


    鼠标还可以滚动滚轮,我们可以分别用Wheel 和 HWheel模拟水平和竖直. 当然你还可以通过指定的MouseData 让鼠标滚动特定的距离.

    var info = new InjectedInputMouseInfo();
    info.MouseOptions = InjectedInputMouseOptions.Wheel;
    info.MouseData = 500; //scroll up
     
    InputInjector inputInjector = InputInjector.TryCreate();
    inputInjector.InjectMouseInput(new[] { info });

    对与向下滚动,只需要给 MouseData一个负值就行了.

    unchecked
    {
        info.MouseData = (uint)-500; //scroll down
    }


    鼠标输入还包含一个TimeOffsetInMilliseconds 属性, 它可以用于 延时个别的行为,而常用的场景就是模拟双击.

    对于在UWP打开启动其他应用程序

    我们推荐使用 LaunchUriAsync 启动一个已经被声明协议的功能的UWP 程序,具体的操作方式你可以参考这篇文章



    "Developing Universal Windows apps" forum will be migrating to a new home on Microsoft Q&A (Preview)!
    We invite you to post new questions in the "Developing Universal Windows apps" forum’s new home on Microsoft Q&A (Preview)!
    For more information, please refer to the sticky post.


    2019年12月24日 1:49
  • 你好,我看了下这个主要是针对有URI的应用,如果要拉起Win32 exe应用是否有办法?
    2020年3月17日 7:22