2017-09-10 2 views
0

J'essaie d'interagir avec une application tierce. Je souhaite enregistrer les valeurs de texte affichées par le client à des fins d'audit.Un enfant manquant comparant inspect.exe à UIAComWrapper.dll a retourné la valeur de AE.RootElement.FindAll (TreeScope.Children, Condition.TrueCondition)

Il y avait de nombreux éléments manquants lors de l'utilisation de UISpy.exe et une liste complète lors de l'utilisation de Inspect.exe. Cela m'amène à croire que, pour interagir avec cette application, je dois utiliser le UIAComWrapper.dll.

Voici les résultats inspect.exe, qui contiennent des informations complètes, comme je le souhaite.

inspect.exe avec tous les enfants:

inspect.exe with all children

Quand je lance le code suivant, il retourne tous les éléments sauf celui expurgée élément.

Dim rootChildren = AutomationElement.RootElement.FindAll(TreeScope.Children, Condition.TrueCondition) 

Que puis-je faire pour obtenir une liste complète des enfants de l'élément racine? Quand j'utilise le standard UIAutomationClient.dll (pas de wrapper com), j'obtiens la liste complète des enfants pour rootElement incluant l'élément redacted. Cependant, cet élément n'a pas d'enfants attendent la barre de titre.

Je veux récupérer précisément ce qui est affiché par inspect.exe pour cet élément, puis stocker l'arborescence.

Répondre

0

L'application tierce était exécutée en tant qu'administrateur, mais pas Visual Studio. Lorsque VS a été ouvert et exécuté en tant qu'administrateur, la liste rootElement.children correspondait à inspect.exe.