2010-10-01 28 views
0

J'essaie d'utiliser UI Automation pour enregistrer les interactions d'écran dans mon application Silverlight. J'ai les Automation Peers pour ma configuration de contrôle mais je n'arrive pas à comprendre comment suivre ces commandes.Interactions de l'écran d'enregistrement à l'aide d'UI Automation pour les contrôles Silverlight

Pour mon application WPF je mettre la main sur AutomationElement.RootElement puis naviguez jusqu'à mon événement d'automatisation App et de configuration Handlers sur les contrôles que je suis intéressé par.

Comment puis-je faire la même chose pour l'application Silverlight? Je veux que l'enregistreur d'écran démarre automatiquement chaque fois que mon application fonctionne. L'enregistreur d'écran doit s'asseoir dans mon application. Mais l'espace de noms System.Windows.Automation silverlight n'a pas de classe AutomationElement. Alors, comment ferais-je cela dans Silverlight?

Merci
Shivaprasad

Répondre

2

Comme vous avez observé, la classe AutomationElement n'existe pas dans Silverlight: l'API UIAutomation est disponible uniquement dans le plein cadre .Net. Silverlight est uniquement pris en charge en tant que fournisseur UI Automation. En d'autres termes, les applications Silverlight peuvent être contrôlées par UI Automation, mais elles ne sont pas en mesure de contrôler d'autres applications. Pour cette raison, je ne pense pas que vous serez en mesure de créer votre enregistreur d'écran dans l'application Silverlight - sauf si vous êtes prêt à recourir à des hacks méchants.

Ces hacks pourraient inclure:

  • En utilisant Silverlight COM Automation appeler la nouvelle UIAutomation COM API. Les utilisateurs seraient tenus d'avoir installé l'API COM sur leurs machines en plus de Silverlight.
  • Créez une application "serveur" dans .Net que vous pouvez exécuter sur la machine cible qui exécute le travail UIAutomation réel, puis communiquez avec celle-ci à partir de votre application Silverlight à l'aide de WCF.