2016-06-01 3 views
0

ウィンドウ内のフォーカスされた要素を取得する方法を調べるのに問題があります。 2つのテキストボックス、ドロップダウン、2つのボタンがある別のプログラムのウィンドウがあります。私はこのプログラムを開いて前面に引っ張り、2つのテキストボックスを入力し、プログラム的にドロップダウンから選択する必要があります。cで正確にフォーカスされた要素を取得する#

私は、SetForegroundWindowでウィンドウを前方に引っ張って物を埋めることができ、SendKeysでナビゲートすることができますが、カーソルがどのボックスを開始するかわからないので、それを正しく埋めるために正面に引っ張った。

アイデア?

+0

のWinForms 、WPF?あなたが入力するときにすでにTextBoxの1つにフォーカスがありませんか? – LarsTech

+0

[UIAutomation](https://msdn.microsoft.com/en-us/library/windows/desktop/ee684009.aspx)を使用していますか? – muratgu

+0

私は(うまくいけば)もう少し明確に編集しました。 UIボックスは私のものではなく、外部の独自ソフトウェアの一部です。ボックスの1つに焦点が当てられていますが、私が今作業しているスクリプトでは、それらを適切に埋め込むためのスクリプトを知る必要があります。 私はUIAutomationを使用していません。 – pucedragonlord

答えて

1

ここではメモリと擬似コードがオフになります。

形の内部では、あなたは、このような制御の名前として、他の豊富な情報を提供すべき、その情報を取得するタイプをthis.ActiveControlを使用することができるはずですが、など

+1

私はそれを調べます。この/ Control.ActiveControlは外部アプリケーションで使用できますか?私が作業しているこのウィンドウは、難解な部分が出てきたコードと、ちょうど対話しているわけではありません。これまでウィンドウのほとんどはウィンドウ自体のIntPtrですが、私はそれで何ができるのかまだ分かりません。 – pucedragonlord

+0

Wirthは外部から試してみましたが、私は正直言ってこのユースケースを持っていないので、間違った方向に向けるのは嫌です。試してみると、私は確かにコメントします! –

+1

MSDNを使って掘り下げてみると、少なくとも正しい軌道にあるように見えます。すべてのアクティブ/フォーカス/キーボードフォーカス取得関数は私が今までテストしたところで私にウィンドウを与えます。コントロールのプロパティとメソッドは、少なくとも実際のUI要素を処理します。 – pucedragonlord

関連する問題