ほかのウィンドウのエディットボックスに文字列を挿入

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: ほかのウィンドウのエディットボックスに文字列を挿入

by doloop » 2006年11月25日(土) 22:25

早速試しました、
WM_SETTEXTを使えば他のwindowの内容も変更できるのですね

ところで、いろいろ調べてみたら
GetForegroundWindow()で最前面ウィンドウのハンドルを調べ、
FindWindowEx(hWnd, 0, "edit", NULL)を使えば
エディットボックスのハンドルがわかることが
わかりました

これで、たぶん目的のプログラムを作れると思います

皆さん、アドバイスありがとうございます。

by イグトランス » 2006年11月25日(土) 09:37

SetWindowTextを使っていますか?
他のプロセスが所有しているトップレベルでないウィンドウにSetWindowTextは使えません。
WM_SETTEXTメッセージを送ってやる必要があります。
SetWindowText - MSDNライブラリ

by doloop » 2006年11月25日(土) 02:43

ノッチさんアドバイスありがとうございます。
試してみましたが、自分のプログラムで作成したwindowのタイトルを変更することはできるようですが、ほかのプログラムのは変更できないようですね。

by ノッチ » 2006年11月23日(木) 22:27

もう見てないかもしれませんが。
WM_ACTIVATEが来た時にwParamが0以外の時はlParamが
直前のウィンドウのハンドルになるらしいです。
試してないのでなんともいえませんが、このlParamを使って
IsWindowやGetClassNameで判断して処理するのはどうでしょうか?
lParamがカーソルのあったEditBoxのハンドルなのか、親ウィンドウのハンドル
なのかわかりませんが。

ps
近頃静岡の御殿場にちょくちょく出張に行くのですが、
富士山に雪が積もってきれいですね。

by doloop » 2006年11月23日(木) 13:50

ありがとうございます。
探してみます。

by konisi » 2006年11月20日(月) 23:25

まず、アクティブなウインドウのハンドルを取得する関数はありますが、直前までアクティブだったもの、となると思い当たりません。
また、ウインドウのハンドルとエディットボックスのハンドルは異なるので、その方法では判定できません。
例えば、もしそのような関数があったとしても、そのウインドウにエディットボックスが複数個ある場合には使い物になりません。

指定された座標にあるアイテムのハンドルを取得する関数ならあったと思うので、探してみてください。


ただし、Javaで動いているソフトの場合、うまくハンドルを取得できないことがあります。
名前と詳細は忘れましたが、Java仮想マシンの一種に、アイテムにハンドルを与えない設計になってるものがあったと思います。

ほかのウィンドウのエディットボックスに文字列を挿入

by doloop » 2006年11月20日(月) 00:16

今、TeX入力支援のための
1.起動
2.リストから文字列を選択
3.直前までアクティブだったウィンドウのエディットボックスに文字列を挿入
というプログラムを作ろうとしているのですが、

3.をする方法がわかりません。

どなたか教えてください。

ページトップ