2009-09-01 8 views

Répondre

3

Pour autant que je sais AutomationElementInformation a un AcceleratorKey et AccessKey propriétés.
Des extractions de MSDN:

AutomationElement :: :: AutomationElementInformation AcceleratorKey
La séquence de combinaisons de touches qui font appel à une action associée à l'élément.

et:

AutomationElement :: :: AutomationElementInformation AccessKey
Le caractère, associé à un élément, qui est utilisé pour activer cet élément.

Et après, vous pouvez utiliser SendKeys pour simuler des pressions sur les touches.

Une autre façon est d'utiliser keybd___event mais, AFAIK, il était déconseillé et Microsoft conseille d'utiliser SendInput à la place. Peut être cela vous aidera.

+0

Merci à propos de AcceleratorKey et AccessKey. C'était utile. Mais je ne peux pas utiliser SendKeys, car l'utilisation de UI Automation Library est une autre approche lorsque vous travaillez avec Win32 Form. J'ai AutomationElemnt et peut obtenir ses modèles d'interagir avec les propriétés de type de contrôle. Dans mon cas, j'ai MainWindow AutomationElement et il a deux modèles disponibles: WindowPattern et TransformPattern. Et en utilisant ce modèle, il n'y a aucun moyen d'émuler SendKeys. Donc, je ne comprends toujours pas comment je peux utiliser les raccourcis clavier. – Loki

+0

Pouvez-vous utiliser * SendInput *? –

2

Vous devez activer la fenêtre principale et appeler SendKeys :: Send pour envoyer les clés à la fenêtre active. C'est une méthode statique dans la classe SendKeys, donc, envoyez les clés à la fenêtre pas besoin de l'AutomationElement de la fenêtre principale.

Questions connexes