【问题标题】:VB.NET How to insert text at cursor position in a different window?VB.NET 如何在不同窗口的光标位置插入文本?
【发布时间】:2010-06-19 11:23:51
【问题描述】:

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

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

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

但这不起作用。

任何帮助将不胜感激。

【问题讨论】:

    标签: vb.net text insert


    【解决方案1】:

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

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

    • 将文本复制到剪贴板上并向应用程序发送一条 ctrl+V 按键消息。 (这将覆盖剪贴板,但可能不适用于不支持该快捷键的应用)

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

    【讨论】:

    • 非常感谢您的回复。很抱歉,我不知道如何按照您的建议进行操作。您能给我举个例子或指出正确的方向吗?
    • 总是听说要知道在什么级别上提出答案。要发送键盘消息,您需要使用 SendMessage 函数。我建议在“VB 发送 WM_CHAR WM_KEYDOWN”上进行谷歌搜索,以查找如何执行此操作的示例 - 网络上有很多关于此主题的讨论,应该足以让您入门。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多