2009-08-24 6 views
1

Answers.com a une application de barre des tâches qui, lorsque vous cliquez sur ALT + un clic de souris sur un mot dans un programme, il affiche une fenêtre avec des informations extraites de leur site Web.comment accéder au mot actuel dans un programme

Ma question est-- quels sont les mécanismes de programmation et API utilisés pour faire quelque chose comme ça? Je n'ai pas d'expérience en programmation d'applications Windows et j'essaie de savoir par où commencer. Comment accéder au mot actuel pointé par la souris?

Quelqu'un connaît-il des exemples ou des logiciels open source qui font quelque chose comme ça?

Répondre

0

Cela fait un moment et la dernière fois que j'ai fait quelque chose comme ça, c'était dans mon propre éditeur wysiwyg, j'avais un accès complet à toutes les caractéristiques de police nécessaires pour calculer le mot cliqué par la souris.

Peut-être il ya un moyen n facile de le faire si toutes vos applications sont .NET ou com ou partager un autre cadre qui fournit un moyen de récupérer cela directement.

Grâce à l'API, j'étudierais les messages du clavier et de la souris afin que votre application puisse prétraiter chaque clic de souris sur d'autres applications - commencez avec SetWindowsHookEx et lisez tout ce que vous pouvez sur l'accrochage des messages. Après avoir demandé à votre application de pré-traiter les messages, vous devez ensuite cliquer sur le texte sur lequel vous cliquez. Étant donné que le texte peut être peint de différentes façons sur le contexte d'un périphérique, il est préférable de procéder à un scrape d'écran de la zone cliquée car le texte peut uniquement exister sous la forme d'un bitmap. Si c'est le cas, vous devez effectuer une OCR pour traduire le bitmap récupéré en texte. Dans d'autres cas, le texte peut résider dans la fenêtre sous forme de texte - le message WM_GETTEXT peut renvoyer ce texte à partir de certains types de fenêtres (par exemple, boîtes de texte, boutons, etc.) mais pour les fenêtres normales, ce message renvoie uniquement le titre dans la barre de légende .

Désolé, je n'ai pas de réponse définitive, mais cela peut vous aider à démarrer dans la bonne direction.

Questions connexes