DOBON.NET DOBON.NETプログラミング掲示板過去ログ

キャレットがある位置に文字列を貼り付けたい

分類:[.NET]

はじめまして 今Microsoft Web Browserコンポーネント上に表示したWEBサイトの
テキストボックスにIDやパスワードなどを自動的に入力できるソフトを作っていてる者です。

以前あったトピックを参考にさせていただきuser32.dllのGetGUIThreadInfo関数を使ってWEBサイトのテキストボックスのキャレットの位置(X,Y座標)を取得するところまではできたのですが、その取得したキャレット位置に指定した文字(ID、パスワードなど)を入力(ペースト)する方法が分からず困ってます。ご存知の方いらっしゃいましたらよろしくお願いします。

使用言語はVisualStudio.net2003のC#です
こんにちは、akiraさん。ピラルクです。

この手のツールが通常どうやっているかは知らないのですが、
キャレットのグラフィック的な位置を取得しても、次につな
げるとしたら、WindowFromPointでhWndを取ってSetWindowText
やSendMessageするとか、ですかね。

そんな回りくどいことしなくても、キャレットがあるという
ことは、つまり、既にForegroundなwindowということだから、
ペーストさせるなら単に、
SendKeys.Send("^v"); // Ctrl+Vを送信
で実現できると思うのですが。。。

そういうアプローチのものではない?
■No768に返信(ピラルクさんの記事)
> こんにちは、akiraさん。ピラルクです。
>
> この手のツールが通常どうやっているかは知らないのですが、
> キャレットのグラフィック的な位置を取得しても、次につな
> げるとしたら、WindowFromPointでhWndを取ってSetWindowText
> やSendMessageするとか、ですかね。
>
> そんな回りくどいことしなくても、キャレットがあるという
> ことは、つまり、既にForegroundなwindowということだから、
> ペーストさせるなら単に、
> SendKeys.Send("^v"); // Ctrl+Vを送信
> で実現できると思うのですが。。。
>
> そういうアプローチのものではない?

SetForegroundWindowとSendKeys.Sendであっさり解決できてしまいました
ご返答有難う御座いました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板