VB.NET Как вставить текст в позиции курсора в другом окне? - PullRequest
0 голосов
/ 19 июня 2010

У меня есть небольшое приложение, которое отображает список под позицией курсора, когда пользователь использует комбинацию клавиш.

Когда пользователь дважды щелкает выделение из списка, я хочу вставить этот выделенный текст в положение курсора этого открытого окна.

Пример: у пользователя открытое слово Microsoft. Он / она использует сочетание клавиш, которое отображает список прямо под позицией курсора. В списке есть коллекция текста. Когда пользователь дважды щелкает выделенную область, выбранный текст вставляется в позицию курсора.

Я попробовал следующее:

Private Sub ListBox1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick
Text.Insert(Cursor.Position, ListBox1.SelectedItem)
End Sub

Но это не работает.

Любая помощь будет искренне оценена.

1 Ответ

0 голосов
/ 19 июня 2010

Лучший (наиболее общий) подход заключается в том, чтобы заставить приложение думать, что вы ввели какой-то текст.Например:

  • Отправлять сообщения окна нажатия клавиш для всех символов, которые вы хотите «напечатать», в целевое окно (например, с сообщениями типа WM_KEYDOWN или WM_CHAR. Для поиска может потребоваться эксперимент)подход, который работает лучше всего).

  • Скопируйте текст в буфер обмена и отправьте одно нажатие клавиши Ctrl + V в приложение.(Это перезапишет буфер обмена и может не работать в приложениях, которые не поддерживают эту комбинацию клавиш)

Если вы знаете конкретное приложение (например, MS Word), то вы можетеиспользовать интерфейсы автоматизации приложений (OLE и т. д.) для вставки текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...