TrackFocus のサンプル
更新 : 2007 年 11 月
このサンプルでは、Microsoft UI オートメーションを使用してデスクトップ上の入力フォーカスを追跡し、フォーカスの変更に関する情報を表示します。この単純なコンソール アプリケーションは、UI オートメーションを使用してデスクトップ上のイベントを追跡するアプリケーションの開始点として使用できます。
入力フォーカスが変更されると、プログラムはそれを通知します。フォーカスが別のアプリケーション ウィンドウに移動すると、そのウィンドウのキャプションが通知されます。フォーカスがアプリケーション ウィンドウ内で移動すると、読み取り中のコントロールの型と名前が通知されます。
フォーカスが別のアプリケーションに切り替わったことを知るために、プログラムは開いているすべてのトップレベルのウィンドウのランタイム識別子の一覧を保持します。各フォーカス変更イベントに応答して、TreeWalker を使用して親ウィンドウが検索され、フォーカスを持っていた最後のウィンドウと比較されます。
プログラムは、次の 3 種類のイベントをサブスクライブします。
構造の変更。関連するイベントのみが新しいトップレベル ウィンドウに追加されます。
フォーカスの変更。すべてのイベントがキャプチャされます。
ウィンドウのクローズ。トップレベルのウィンドウが閉じると、そのランタイム ID が一覧から削除されます。
単純化のために、キャッシュは行っていません。実際の規模のアプリケーションでは、ウィンドウがフォーカスを受け取るとすぐに、アプリケーション ウィンドウの直接の子をすべてキャッシュすることが考えられます。
このサンプルでは、Windows Presentation Foundation (WPF) の特定の機能を示します。そのため、アプリケーションの開発ベスト プラクティスに従っていません。Windows Presentation Foundation (WPF) と Microsoft .NET Framework のアプリケーション開発ベスト プラクティスの包括的な説明については、適宜、次のトピックを参照してください。
ユーザー補助 - 「ユーザー補助のベスト プラクティス」
セキュリティ - 「Windows Presentation Foundation のセキュリティ」
ローカリゼーション - 「WPF のグローバリゼーションおよびローカリゼーションの概要」
サンプルのビルド
Windows ソフトウェア開発キット (SDK) をインストールして、そのビルド環境のコマンド ウィンドウを開きます。[スタート] メニューの [すべてのプログラム]、[Microsoft Windows SDK] の順にポイントし、[CMD シェル] をクリックします。
サンプルをハード ディスク ドライブにダウンロードします。通常は、ソフトウェア開発キット (SDK) のドキュメントからダウンロードします。
ビルド環境のコマンド ウィンドウからサンプルをビルドするには、サンプルのソース ディレクトリに移動します。コマンド プロンプトで「MSBUILD」と入力します。
Microsoft Visual Studio でサンプルをビルドするには、サンプル ソリューションかプロジェクト ファイルを読み込んで、Ctrl キーと Shift キーを押しながら B キーを押します。
サンプルの実行
コンパイルしたサンプルをビルド環境のコマンド ウィンドウから実行するには、サンプルのソース コード フォルダの下にある Bin\Debug または Bin\Release フォルダで .exe ファイルを実行します。
コンパイルしたサンプルを Visual Studio でデバッグしながら実行するには、F5 キーを押します。