QA@IT

ラベルのハンドルからラベルNameを取得したい

2916 PV

他のアプリのラベルのハンドルから
そのラベルNameを取得することはできるでしょうか?

複数のラベルから、指定したラベルのみに
値を渡したいのですが、ラベルのハンドル以外に
それぞれのラベルを判断する方法が分かりません。

なので、ラベルのNameが取得できれば
それで判断しようと思いました。

取得方法をご教授お願いします。

開発環境:
Window7
Microsoft Visual Studio 2010 C#

  • どういうコードを考えているかわからないのですが、それはラベルNameがわかっているとして、他のアプリのラベルへ値を設定することはできたということですか?また、ハンドルとはHandleプロパティでとれるウィンドウハンドルの事ですか? -
  • ラベルNameは分かっています。
    例えば「lblValue」のように。

    ハンドルとはウィンドウハンドルのことです。

    別アプリの画面上は複数のラベルがあり、
    「取得したラベルハンドルの3番目」の
    値を取得するというのはできたのですが、
    何番目にあるか分からないが、ラベル「lblValue」の
    値を取得するという方法が分かりません。
    -
  • なるほど区別出来れば良いのでNameは文字列値で取れればいいんですね、勘違いしてました。万人にお勧め出来るかわかりませんが見つけましたので帰り次第回答します。 -

回答

以下のブログに従い WM_GETCONTROLNAME を利用することで .NET 3.5 x86 なアプリケーションのボタンのNameプロパティは取得できました。
NativeMethodsに関してはコメントの中にリンクがあります。

http://blogs.msdn.com/b/brianmcm/archive/2006/01/17/getting-the-winforms-id-of-a-control.aspx

ただAPIを使用してReadProcessMemoryなどもしてますので解放漏れなどに注意が必要ですね。

編集 履歴 (0)
  • ありがとうございます。

    ラベルNameが取得することができました!!
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。