Можно ли создать приложение WinForm (или приложение другого типа .NET), которое позволяет мне взаимодействовать с другими окнами вне самого приложения? - PullRequest
1 голос
/ 22 марта 2010

В данный момент я изучаю китайский язык, и у меня появилась возможность определить словарь китайского языка.

Теперь я хотел бы сделать интерфейс.

Все, что я действительно хочу, чтобы приложение, это когда я нацеливаю курсор мыши на любой текст на экране (в любом окне), оно идентифицирует текст, на который я указываю, и затем отображает небольшую форму поверх него, что китайская сделка.

Это возможно сделать? Могут ли приложения WinForms взаимодействовать с окнами вне собственного приложения?

Ответы [ 2 ]

0 голосов
/ 22 марта 2010

Приложение WinForms может взаимодействовать с Windows других приложений. Дескрипторы окна существуют в глобальном пространстве имен, поэтому, если вы можете получить дескриптор окна другого приложения, вы можете отправлять ему сообщения. Вам придется использовать pinvoke, чтобы сделать это, посмотрите на WindowFromPoint

Однако нет стандартного способа отображения текста в окне; Есть десятки API для отображения текста. Поэтому, когда вы указываете на текст мышью, вы можете получить только пиксели, но не обязательно текст.

Некоторые классы окон позволяют отправлять специфичные для класса сообщения для запроса текста в определенном месте, но многие не будут. Лучше всего, вероятно, использовать те же методы, которые используются для чтения с экрана для слепых http://en.wikipedia.org/wiki/Screen_reader

0 голосов
/ 22 марта 2010

В C # вы можете получить текст под курсором мыши с помощью P / Invoking

  • GetCursorPos
  • GetClassName
  • SendMessage

    • WM_GETTEXT
    • WM_GETTEXTLENGTH
  • WindowFromPoint

Как упомянуто здесь

здесь - другой пример в C ++

...