VB.NET如何在不同窗口的光标位置插入文本?

时间:2010-06-19 11:23:51

标签: vb.net text insert

我有一个小应用程序,当用户使用快捷键时,它会在光标位置下显示一个列表框。

当用户双击列表框中的选项时,我想在所打开窗口的光标位置插入所选文本。

示例:用户打开了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

但这不起作用。

真诚地感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

最好的(最通用的)方法是欺骗应用程序以为您输入了一些文本。例如:

  • 将您要“键入”的所有字符的按键窗口消息发送到目标窗口(例如,使用WM_KEYDOWN或WM_CHAR类型的消息。可能需要一些实验来找到最有效的方法。)

  • 将文本复制到剪贴板并向应用程序发送单个ctrl + V按键消息。 (这将覆盖剪贴板,但可能无法在不支持该快捷键的应用程序中使用)

如果你知道specfic应用程序(例如MS Word),那么你可以使用特定于应用程序的自动化(OLE等)接口来插入文本。