IEのテキストボックスにバックグラウンドで文字の入力。


かずま  2008-09-19 13:03:30  No: 32003  IP: 192.*.*.*

IEのテキストフィールドに、Delphiから文字の挿入はできないでしょうか?
そのまま、PostMessage(h,WM_PASTE,0,0);では、テキストフィールドのハンドルがない?見あたらなかったので、分かりませんでした。

で、フォーカスを移動させる事は無理かな?と思い、

h := FindWindow(PChar('IEFrame'), nil);
GetMem(PC, 100);
Len :=GetClassName(h, PC, 100);
SetString(Classname, PC, Len);
FreeMem(PC);
Memo1.Lines.Add('Hnd  :' + Classname);
PostMessage(h, WM_NEXTDLGCTL, 0, 0 );
PostMessage(h,WM_PASTE,0,0);

これをハンドルの所から変えて、ループIEFrameを、Shell DocObject View→Internet Explorer_Serverや、WorkerW以下で試してみましたが、浅知恵だったのか、無理でした。

別のソフトでは、バックグラウンドでの、フォーカスの移動は、可能だったのですが・・・。

バックグラウンドで、IEのテキストフィールドに、入力することはできないでしょうか?

編集 削除
 2008-09-19 14:22:38  No: 32004  IP: 192.*.*.*

最終的に何がしたいのですか?
それがわからないと回答のしようがないと思います。

編集 削除
ひょっとして  2008-09-19 18:19:41  No: 32005  IP: 192.*.*.*

このような機能なのかいな?ttp://www.forest.impress.co.jp/lib/home/house/auction/idmanager.html

そうであれば、できるんでしょうね。

編集 削除
かずま  2008-09-19 18:48:39  No: 32006  IP: 192.*.*.*

最終的には、質問の一番上の

IEのテキストフィールドに、Delphiから文字の挿入はできないでしょうか?

です。
あとは、何か補足で説明した方がいいでしょうか?
どうも、無駄な説明が多いのが悪いクセでして。
とはいえ、どれくらいの知識があるのか?何を試したのか?と画いておこうと思いまして。

目的は、
IEをバックグラウンドのまま、Delphiで作ったアプリで、IEのテキストフィールドの所に、文字が入っている状態にしたいなー、と。

ただそれだけです。

それを、顔文字の貼り付けソフトにするか、パスワードマネージャーにするか、ログインソフトにするかは、個人的な事になるので、後で検索する人の汎用性を欠くかなー?と、思いまして。

実際、私もそこまでは考えておらず、これができたらいろんな事に応用ができる・・・くらいにしか考えていません。
私はアプリ作成は、難解なパズルを解く遊びなので、問題を解決することが主目的になっている面もありますし、こういう技術があるのでしたら、関数やコンポーネントにまとめて、HPで公開すれば、それを見た人の役に立つでしょう。

きちんとしたソフトの完成の青写真ができていないとまずいのでしたら、顔文字貼り付けソフトですが、やはりIEをバックグラウンドのままが、条件です。

多少質問が的はずれかもしれませんが、よろしく御願いします。

また、あー、それは結構試してみたけど、やっぱり無理っぽいとか、IEの仕組みからして、無理という書き込みも参考になります。

編集 削除
かずま  2008-09-19 21:12:49  No: 32007  IP: 192.*.*.*

DMonkeyを使ったら、できるのでしょうか?
JavaScriptっぽいDelphi用のスクリプトエンジンコンポーネントのようです。
http://lukewarm.s41.xrea.com/DMonkey/index.html#aboutdmonkey

HP内のJavaScriptなら、送信ボタンを押したり、テキストの入力もできるのですが、このコンポーネントでできるのか?それは、バックグラウンドのままできるのかは、まだ不明です。

編集 削除
うーん・・・  2008-09-20 13:11:12  No: 32008  IP: 192.*.*.*

単に入力するだけなら、コンテキストメニューに項目を追加して、
そこから入力できるようにするのがいいと思うのですが・・・

たとえば、

元に戻す
------------
切り取り
コピー
貼り付け
削除
------------
顔文字入力  >  笑い  >
               泣き  >
                ・
                ・
                ・
------------
全て選択

のような感じで。
テキスト入力をバックグラウンドでやる理由は何ですか?

編集 削除
これは?  2008-09-20 13:45:05  No: 32009  IP: 192.*.*.*

未確認ですが、こちらはどうですか?

http://hiderin.air-nifty.com/delphi/webbrowser/index.html

編集 削除
かずま  2008-09-20 23:49:57  No: 32010  IP: 192.*.*.*

>テキスト入力をバックグラウンドでやる理由は何ですか?

すこし変かもしれませんが、補足の様な4番目の書き込みで

>実際、私もそこまでは考えておらず、これができたらいろんな事に応用ができる・・・くらいにしか考えていません。
>アプリ作成は、難解なパズルを解く遊び

が、正味な話です。
Yahooやmixiのログインか、ジョークソフトにするかもしれませんし、IEのタイトルの所にくっつけられる顔文字貼り付けソフトにするかもしれませんし、私の使っているブログがHPでは重いので、ブログ用の書き込みソフトにするかもしれませんし、PCの状態をHPで確認するソフトにするかもしれませんし「ただいま稼働中とか」、自分のHPでチャットの所在のために使うかもしれません。「ただいま作業中とか。」。
コンポーネントは自信がありませんが、関数、クラス化してしまえば、結構応用ができると思うけど・・・。
(ジョークソフトは、田代砲とかの、いやがらせようとにも使われそうだから、配布や予防法は考えますし、ブログだとテキストエリアも考えないといけませんが・・・。

もちろん、一つ一つの事は、代替えの方法があったりするでしょうが、処理を一つにまとめれば、デバック作業もしやすいというのが、最近のポイントではないでしょうか?
とはいえ、田代砲とかにも応用可能なのか。
公開はやめた方がいいのかな?

なんだろう?「ジュースをコップにふれずに飲む方法は?」って聞いているのに、ジュースの味は何ですか?と聞かれているような、ちょっと歯がゆい気持ちです。
方法を問うときって、目的って必要ですか?
・・・とはいえ、私もそうですが、初心者は難しく考えたり、違った方法を聞きがちですが・・・。

そう言えば、お礼がまだでした。
?さん、ひょっとしてさん、うーん・・・さん、これは?さん。
皆さんありがとうございますねー。w

これは?さんの書かれたHPは、よく見かけるので、お気に入りに追加していたのですが、このページを見たのは始めてです。
じっくりと見てみますね。w

編集 削除
ついでに?  2008-09-21 00:21:15  No: 32011  IP: 192.*.*.*

これも...

http://www.swissdelphicenter.ch/torry/showcode.php?id=1645

このままではなく、自分でいろいろと工夫してお試しあれ。

編集 削除