2016-08-30 23 views
-1

私はフォームを持っており、フォーム上に私はウェブブラウザを持っており、現在google.comを開いています。テキストを送信するSendMessage関数

カーソルは既に検索ウィンドウにフォーカスされています。 SendMessageを使用してテキストをWebBrowserコントロールに送信しようとしましたが、機能しませんでした。現在のコード。

Const WM_SETTEXT As Integer = &HC 

Dim hdle As IntPtr = WebBrowser1.Handle 

SendMessage(hdle, WM_SETTEXT, 0, "test") 

なぜGoogleの検索タブにテキストを送信しないのですか?これをどうすれば解決できますか?

P.S:SetTextにSendKeysまたはHTMLメソッドを使用したくありません。 Handlerのみを使用したい。

+0

どのように/いつSendMessageトリガのイベントですか? – Luke

+0

タイマーまたはボタン。 –

答えて

0

Webブラウザコントロールのウィンドウハンドルは、テキストエディットコントロールのウィンドウハンドルではありません。だからあなたはあなたが意図したコントロールにメッセージを送信していません。

実際、私が知っているすべての主流のブラウザは、ウィンドウコントロールを使用しません。そのため、テキストウィンドウにはウィンドウハンドルがなくても、基本的なコンセプトを成功させることはできません。

あなたがしようとしていることは、UIオートメーションを使用して最も効果的です。

+0

SendMessageキーストロークを使用してそれを行うことはできますか?キーアップ、ダウン、WM_char? –

+0

上記の文章を念頭に置いて、どこでメッセージを送信しますか?そして、なぜあなたはそれを送るだろうか?入力は送信されない入力キューに置かれます。入力偽装にはSendInputが必要です。しかし、どうしてなぜオートメーションフレームワークが存在するときに入力を偽装したいのですか?毎週このような質問が数十回あります。なぜあなたは自動化しないように決心していますか? –

関連する問題