他アプリのテキストフィールドに文字を送るには?


蟷螂の斧  2003-10-28 19:29:26  No: 80029

他アプリのテキストフィールドに文字を送りたいのですが、
現在、送りたい他アプリをアクティブにして最前面に表示してクリップボードにテキストを保存してアクティブになっているテキストフィールドにコピーするという感じです。
これだとテキストフィールドがアクティブになっていないと文字は送れないし、
また、違うウィンドウをアクティブにするとそこに文字が送られてしまいます。

指定した他ウィンドウが最小化されていたとしても、テキストフィールドに文字が正しく送られるにはどうすればよいのでしょうか?
ご教授お願いします。


1412  2003-10-28 20:14:24  No: 80030

他のアプリっていうのは、自分で作成したアプリですか?

基本的な考え方としては、
テキストボックスのウィンドウハンドルを取得して、
SetWindowText API や SendMessage API を使用して
そのウィンドウに文字列を送るという感じです。


Say  2003-10-28 20:28:16  No: 80031

>他のアプリっていうのは、自分で作成したアプリですか?
自作ならDDEという手もあります。


いちゆ  2003-10-29 20:01:39  No: 80032

DDEのほかにActiveXEXEという手もあります…親子関係が強いですけど。


魔界の仮面弁士  2003-10-29 21:24:14  No: 80033

> テキストボックスのウィンドウハンドルを取得して、
> SetWindowText API や SendMessage API を使用して
> そのウィンドウに文字列を送るという感じです。

今回は『他アプリ』なので、SetWindowText APIではなく、
WM_SETTEXT メッセージの方が適切かと。


ぴろC  2003-10-30 17:58:02  No: 80034

他アプリのテキストフィールドのハンドルとか取得できますか?
他アプリのウィンドウのハンドルの取得はやり方がわかるのですが、
そのウィンドウに設置されているテキストフィールドとかコンボボックスとかに
文字をセットしたいのですが、可能でしょうか?


Say  2003-10-30 18:10:13  No: 80035

>他アプリのテキストフィールドのハンドルとか取得できますか?
可能です。
FindWindowExについて調べてみてください。
>そのウィンドウに設置されているテキストフィールドとか
>コンボボックスとかに文字をセットしたいのですが、可能でしょうか?
可能です。
Textプロパティに対しては魔界の仮面弁士さんが挙げられたように
WM_SETTEXTをSendMessageしてください。
コンボボックスの操作に関してはヘルプで
CB_〜系のメッセージを調べてみてください。


ぴろC  2003-10-31 05:57:37  No: 80036

魔界の仮面弁士さん、Sayさんありがとうございます。
他アプリにメッセージを送ることができました。
あと一つわからないのですが、
親ウィンドウ  または  子ウィンドウに Enterキーのアクションを
送ることは可能ですか?
改行ではなくて、Enterキーアクションを送りたいのですが
可能でしょうか?


Say  2003-10-31 08:50:55  No: 80037

キーストロークの合成はkeybd_event(API)です。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加