2010-06-19 2 views
0

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

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

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

Я попытался следующие:

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 

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

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

ответ

0

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

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

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

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

+0

Большое спасибо за ваш ответ. Мне жаль, что я понятия не имею, как делать то, что вы предложили. Не могли бы вы привести мне пример или указать мне в правильном направлении? – mazrabul

+0

Это всегда слышно, чтобы узнать, на каком уровне ответить. Для отправки сообщений на клавиатуре вам необходимо использовать функцию SendMessage. Я предлагаю googling на «VB send WM_CHAR WM_KEYDOWN», чтобы найти примеры того, как это сделать - есть много обсуждений этой темы в Интернете, где должно быть много, чтобы вы начали. –

+0

еще раз, большое спасибо. Сейчас я исследую его предмет. – mazrabul

Смежные вопросы