2010-06-19 33 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

相關問題