8

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

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

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

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

4

2 回答 2

5

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

该库包含以下功能:

  • ApiInject 初始化
  • ApiInjectTouchEvent
  • ApiInjectButtonEvent
  • ApiInjectEnableExclusive
  • ApiInjectUninitialize

Dependency Walker 中的 InputInjection.dll

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

但是,用于 Windows 8 开发的函数在 Windows Phone 8 上不可用。但是这些函数的命名类似于我在 InputInjection.dll 中找到的函数:

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

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

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

于 2013-01-07T12:51:33.257 回答
0

您可以从 Win32 服务/内核驱动程序访问所有这些 API。将头文件包含到您的源代码和注入方法库中,它将起作用

于 2013-04-22T11:52:19.560 回答