Question

Je suis en train d'automatiser caché application .NET, avec une autre application .NET (écrit en C #) en utilisant la meilleure façon possible. Ce ne sont pas des fins de test, il est un moyen de remplir le manque de script pour cette application.

Je l'ai déjà essayé blanc cadre, mais il y a un problème majeur avec elle: la façon dont il fonctionne. Il est lent et il ne fonctionne pas sur les fenêtres cachées et des contrôles (comme le fait WinAPI). Ce qui est plus, quand « en cliquant sur » blanc se déplace la souris, apporte sa fenêtre ciblée à l'avant et ainsi de suite.

Je pensais aussi à l'aide d'une enveloppe de user32.dll, parce que la façon dont il est manipulation de cible est ce que je dois, mais je suis rouge, il ne fonctionne pas avec les applications .NET. Il serait également un problème de travail avec elle, parce que mon application ciblée a 5 bouton « ... », et serait vraiment difficile de trouver deux d'entre eux j'ai besoin. Je voudrais aussi utiliser les commandes id .NET (le nom du développeur a donné aux contrôles de quand la conception de l'interface utilisateur graphique).

BTW, mon application ciblée est MeGUI si cela aide. Nous faisons beaucoup de l'encodage vidéo et un outil comme cela nous aiderait beaucoup. J'ai besoin MeGUI pour être caché, parce que je suis le seul programmeur, d'autres à l'aide de mon outil ne devrait pas voir ce qui se passe en arrière-plan, pour ne pas parler des nombreuses fenêtres popping tout autour.

Était-ce utile?

La solution

Vous pouvez ajouter une référence à l'exe de votre projet, puis créer un AppDomain pour exécuter sa principale méthode. A partir de là, il devrait être possible de faire la queue aux délégués à la boucle de son fil conducteur. Avec un peu de réflexion, vous pourriez avoir des délégués Invoke les événements de clic et ainsi de suite directement.

Je ne l'ai jamais essayé cette approche, mais il devrait fonctionner.

Autres conseils

Vous devriez essayer idée Stephens au lieu de script une application cachée. Un .NET Windows Forms App (EXE) est encore une assemblée .NET et cela signifie que vous pouvez utiliser que de la même manière comme une DLL, il suffit d'ajouter une référence et d'utiliser les classes publiques.

Si vous voulez encore essayer quelques scripts, jetez un oeil sur l'API « Microsoft UI Automation » et l'espace de noms « System.Windows.Automation ».

Nice article ici: http://msdn.microsoft.com/en -nous / magazine / cc163465.aspx

MSDN Doc: http://msdn.microsoft. com / fr-fr / bibliothèque / system.windows.automation.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top