Windows Phone 8 - Simulieren Sie Touchscreen-Ereignisse

8

Was wäre der beste Ansatz, um einen Benutzer zu simulieren, der auf einen Touchscreen eines Windows Phone 8-Geräts tippt?

Ein Ansatz, den ich mir vorstellen kann, ist, nativen Code zu verwenden, um die Win32-API-Funktionen aufzurufen, die die Mausereignisse steuern. Dies würde voraussetzen, dass Touchscreen-Ereignisse mehr oder weniger dieselben wie Mausereignisse sind und dass diese API-Funktionen zugänglich sind. Weiß jemand, ob dies bei WP8 der Fall ist?

Ein anderer Ansatz wäre, etwas wie den Android ADB für das Windows Phone zu haben. Unter Android kann man mit ADB das Gerät vom PC aus steuern und auch Touchscreen-Ereignisse simulieren (z. B. über Monkeyrunner). Ich habe keine Informationen gefunden, wenn es ein Tool wie ADB für Windows Phone 8 gibt.

Der Zweck, eine Lösung dafür zu finden, ist die Integration von Windows Phone 8-Geräten in einen automatisierten Testprozess.

    
jakob.j 07.12.2012, 14:11
quelle

2 Antworten

5

Ich habe herausgefunden, dass es eine DLL-Datei namens InputInjection.dll im System32-Ordner von Windows Phone 8 gibt (zumindest im Simulator-Image, das ich gemountet habe).

Diese Bibliothek enthält die folgenden Funktionen:

  • ApiInjectInitialize
  • ApiInjectTouchEvent
  • ApiInjectButtonEvent
  • ApiInjectEnableExclusive
  • ApiInjectUninitialize

Bei einigen Nachforschungen habe ich herausgefunden, dass es offizielle Möglichkeiten gibt, Touch-Eingaben für Windows 8 zu simulieren:

Die Funktionen, die für die Windows 8-Entwicklung verwendet werden, sind jedoch unter Windows Phone 8 nicht verfügbar. Die Funktionen werden jedoch ähnlich wie in InputInjection.dll benannt:

  • InitializeTouchInjection ähnlich wie ApiInjectInitialize
  • InjectTouchInput ähnlich wie ApiInjectTouchEvent
  • (...)

Ich konnte keine Dokumentation zu InputInjection.dll und seinen Funktionen finden. Diese Funktionen werden auch nicht in den Headerdateien des SDK angezeigt. Möglicherweise verwendet Microsoft diese Funktionen intern für ihre eigenen Tests während der Windows Phone-Entwicklung.

Die Frage ist: Ist es möglich, auf diese Bibliothek zuzugreifen und diese Funktionen irgendwie aufzurufen? Dies wäre vergleichbar mit der Verwendung von "privaten APIs" auf iOS, denke ich. Ich habe mehrere Möglichkeiten versucht, dies mit einer Windows Phone 8 App mit nativem C ++ - Code zu erreichen, aber bisher hatte ich kein Glück (der Grund dafür ist, dass die Apps auf Windows Phone Sandboxing ausführen). Gibt es eine Möglichkeit, eine Binärdatei auf Windows Phone (vielleicht über eine Debug-Brücke oder etwas) laufen zu lassen?

    
jakob.j 07.01.2013 12:51
quelle
0

Sie können auf alle diese APIs von Win32 Service / Kernel Driver zugreifen. Fügen Sie die Header-Datei zu Ihrem Quellcode hinzu und die Library of Injection-Methode wird funktionieren

    
user2307098 22.04.2013 11:52
quelle

Tags und Links