2010-06-19 135 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 2010-06-19 11:42:53

+0

总是听说要知道在什么水平上选择答案。要发送键盘消息,您需要使用SendMessage函数。我建议使用google搜索“VB发送WM_CHAR WM_KEYDOWN”来找到如何做到这一点的例子 - 围绕Web的这个话题有很多讨论,应该有很多让你开始。再次感谢 – 2010-06-19 11:48:46

+0

。我正在研究他的主题。 – mazrabul 2010-06-19 13:34:34

相关问题