人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

現在、入力キャレットを持っているコントロールの
ハンドルを取得したいとおもっています。

ウインドウハンドルであれば、
hWnd=GetWindow(GetForegroundWindow(),GW_CHILD);
とすることで、ある程度取得できますが、
この方法は完璧ではないようです。

良い方法はないでしょうか?

●質問者: mikasa_zzt231
●カテゴリ:コンピュータ
✍キーワード:ウインドウ コントロール ハンドル 入力 完璧
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● llusall
●60ポイント ベストアンサー

テキストボックスに文字列を入力したいと言う事でしょうか?


Windows APIのGetFocusとSendMessage を使用する様です。

以下、参考になりますでしょうか?

的外れでしたらすみません。


VC■ 他のソフトのテキストボックスに文字(漢字も)を入力するには?

http://www.hey-to.net/ML-archive/vcppML/1999/msg07927.html


DL■ 他のアプリケーションがアクティブな時のGetFocus

Windows APIのGetFocusは、キーボードフォーカスを持っている、自アプリに関連したウィンドウを調べる関数です。他のアプリにフォーカスがある時に単純にGetFocusを実行しただけでは 0 が返ります。

他のアプリにフォーカスがある場合は、以下のようにする必要があります。

http://hp.vector.co.jp/authors/VA003525/tips13.htm


VB■ 他のアプリケーションのフォーカスがあるウィンドウのハンドルを取得

http://hp.vector.co.jp/authors/VA023367/neartech/vb/1.html

他のアプリケーションのフォーカスがあるウィンドウ(Formモジュールでなく、キャレットのあるTextbox等)のウィンドウハンドルを取得します

使い道としては SendMessage API と組み合わせて内容を書き換える事が出来ますが、私が実験してみた結果、Webページのフォームで作成されたテキストボックス (<INPUY TYPE="TEXT">)等は取得出来ませんでした(これが一番やりたかったのに…)

◎質問者からの返答

ありがとうございます。

この方法かなり有用でした!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ