2008-08-30 3 views
3

PInvokeに頼ることなく、どのウィンドウが開いているかを調べる方法がありますか?これは、メモリ内で実行されているアプリケーションを調べることとは少し異なります。たとえば、Firefoxは動作している可能性がありますが、複数のウィンドウになる可能性があります。基本的には、タスクバー(とalt-tab?)と同じ情報を知りたいだけです。現在のウィンドウのリストを取得し、そのうちの1つに.Netのフォーカスを与えます。

また、ウィンドウへの参照を取得したら、プログラムによってフォーカスを与える方法はありますか?

管理コードでこれを行う方法はありますか?

答えて

0

私はPInvokeなしでそれを行うことはできません。いくつかのウィンドウにフォーカスを置くには、SetForegroundWindow関数を呼び出す必要があります。詳しくは、thisの記事を参照してください。

1

.NET 3.5では新しいUI Automationをチェックアウトできました。これは、PInovkeのものをたくさん隠して、WebアプリケーションとWPFアプリケーションで動作することになっています。

私はまだそれを使用していないので、私はあなたを指示するより具体的な場所がありませんが、それは法案に合うかもしれません。

1

このLGPLプロジェクトをご覧ください。私はそれがウィンドウの前景を設定できることを知っています。さもなければ、akuは正しい。ほとんどの場合、ピンボケコールが必要になります。

http://mwinapi.sourceforge.net/

あなたはPInvokeの使用に関する情報が必要な場合:私はIronRubyのアプリのためのhttp://mwinapi.sourceforge.netは非常に有用であることが分かっ

http://www.pinvoke.net/

+0

を。 – NoonKnight

関連する問題