1

Windows の任意のテキスト ボックスにメッセージを送信する方法を知る必要があります。

Google Chrome の URL テキストボックスにフォーカスがある場合は、メッセージを「自動貼り付け」します。Word 文書の文字列やメモ帳などにフォーカスがある場合は、

iHwndfindwindow、およびfindwindowexを設定して送信するコードを取得しましたが、最終的なプログラムを変更したいときはいつでも設定する必要があるため、「フォーカスベース」の自動プログラムが必要です。

これが私がこれまでに持っているものです...

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim iHwnd As IntPtr = FindWindow("notepad", vbNullString) 
    Dim iHwndChild As IntPtr = FindWindowEx(iHwnd, IntPtr.Zero, "Edit", vbNullString) 
    SendMessage(iHwndChild, WM_SETTEXT, 0, "Hello World!") 
End Sub

私の悪い英語でごめんなさい!

4

1 に答える 1

1

SendMessage常に特定のウィンドウ ハンドルが必要になるか、すべてのトップ レベル ウィンドウにブロードキャストされます。現在のコードを続行するには、まずGetActiveWindowまたは同様の関数を使用してアクティブ ウィンドウのハンドルを取得してみてください。

別の方法として、 SendKeysクラスを試してテキストを送信することもできます。SendKeys常に現在アクティブなコントロールをターゲットにするため (ユーザーがキーボードで直接入力しているかのように)、ウィンドウ ハンドルやタイ​​トルを探す必要はありません。

于 2014-11-10T23:05:05.437 に答える