Windows Phone 8 - 模拟触摸屏事件

jak*_*b.j 8 windows-phone-8

什么是模拟用户点击Windows Phone 8设备触摸屏的最佳方法?

我可以想象的一种方法是使用本机代码来调用控制鼠标事件的Win32 API函数.这将假设触摸屏事件与鼠标事件或多或少相同,并且可以访问这些API函数.有谁知道WP8上是否属于这种情况?

另一种方法是使用类似Android手机的Android ADB.在Android上,可以使用ADB从PC控制设备并模拟触摸屏事件(例如通过Monkeyrunner).如果有像Windows Phone 8的ADB这样的工具,我还没有找到任何信息.

为此找到解决方案的目的是在自动化测试过程中集成Windows Phone 8设备.

jak*_*b.j 5

我发现在Windows Phone 8的System32文件夹中有一个名为InputInjection.dll的DLL文件(至少在我安装的模拟器映像中).

该库包含以下功能:

  • ApiInjectInitialize
  • ApiInjectTouchEvent
  • ApiInjectButtonEvent
  • ApiInjectEnableExclusive
  • ApiInjectUninitialize

Dependency Walker中的InputInjection.dll

做一些研究,我发现有一些模拟Windows 8开发的触摸输入的官方方法:

但是,用于Windows 8开发的功能在Windows Phone 8上不可用.但是这些功能的命名与我在InputInjection.dll中的命名类似:

  • InitializeTouchInjection类似于ApiInjectInitialize
  • InjectTouchInput类似于ApiInjectTouchEvent
  • (......)

我无法找到有关InputInjection.dll及其功能的任何文档.这些函数也不会出现在SDK的头文件中.也许Microsoft在Windows Phone开发期间在内部使用这些功能进行自己的测试.

问题是:是否可以访问此库并以某种方式调用这些函数?这与在iOS上使用"私有API"类似,我猜.我尝试了几种使用本机C++代码的Windows Phone 8应用程序实现此目的的方法,但到目前为止我没有运气(基本原因是应用程序在Windows Phone上运行沙盒).有没有办法在Windows Phone上运行二进制文件(可能通过调试桥或其他东西)?