2010-03-22 17 views
1

J'apprends le chinois en ce moment et j'ai mis la main sur une définition de dictionnaire chinois.Est-il possible de construire une application WinForm (ou un autre type d'application .NET) qui me permet d'interagir avec d'autres fenêtres en dehors du applicaiton lui-même?

Maintenant, je voudrais faire une interface. Tout ce que je veux vraiment que l'application fasse est quand je pointe mon pointeur de souris sur n'importe quel texte sur l'écran (dans n'importe quelle fenêtre), elle identifierait le texte que je montre et montrerait une petite forme dessus, serait la transaction chinoise.

Est-ce possible? Les applications WinForms peuvent-elles interagir avec des fenêtres en dehors de leur propre application?

+0

Une approche plus simple pourrait être de choisir (mettre en surbrillance) le texte dans l'autre fenêtre et que votre application utilise l'objet Presse-papiers pour copier le texte et puis traduis-le. – Ash

Répondre

0

En C#, vous pouvez obtenir un texte sous le curseur de la souris par P/Invoquer

  • GetCursorPos
  • GetClassName
  • SendMessage

    • WM_GETTEXT
    • WM_GETTEXTLENGTH
  • WindowFromPoint

Comme mentionné here

here est un autre exemple en C++

0

Une application WinForms peut interagir avec Windows d'autres applications. Les poignées de fenêtre existent dans un espace de noms global, donc si vous pouvez obtenir le handle de la fenêtre d'une autre application, vous pouvez lui envoyer des messages. Vous devrez utiliser pinvoke pour faire ceci, regardez WindowFromPoint

Cependant, il n'y a pas de façon standardisée d'afficher du texte dans une fenêtre; il y a des douzaines d'API pour afficher du texte. Ainsi, lorsque vous pointez sur un texte avec une souris, vous ne pouvez obtenir que les pixels, mais pas nécessairement le texte.

Certaines classes de fenêtre vous permettra d'envoyer des messages de requête spécifique à la classe pour le texte à un endroit précis, mais beaucoup ne seront pas. Votre meilleur pari est probablement d'utiliser les mêmes méthodes que les lecteurs d'écran pour l'utilisation aveugle http://en.wikipedia.org/wiki/Screen_reader