2011-12-18 6 views
3

現在、Windowsのタスクバーに表示されているアイテムのリストを見つける必要があります。Windowsのタスクバーに現在表示されているアプリケーション(またはウィンドウ)のリストを取得

私はアクティブなプロセスやトップレベルウィンドウのリストを取得する方法を知っていますが、それはできません。 タスクバーに表示されるものもあれば、表示されないものもあります。 アプリがトップレベルのウィンドウを持っていても、タスクバーに表示されない可能性があります。

私はタスクバーのすべての子ウィンドウを列挙しようとしましたが、それは私を非常に遠くまで導かなかった。

ウィンドウ(アイコン)ハンドルの一覧やプロセスの一覧が表示されても構いません。 A tool to order the window buttons in your taskbar

可視ボタンを決定する必要がツールの一部として:

+0

*なぜ*あなたはこれが必要か教えていただけますか?なぜ、すべてのトップレベルウィンドウの一覧ではなく、タスクバーにウィンドウが表示されている必要がありますか? –

+0

私が出産した第三者のアプリケーションがいつ特定の状態になるのかを判断する必要があります。その状態は、そのアプリケーションがタスクバーに表示されるように関連付けられています。それは既に実行されていますが、私が興味を持っている状態になるまでタスクバーには表示されません。 – Harald

+0

デバッグに役立つように、これまでの内容を示すコードを表示できますか? –

答えて

1

私は解決策を見つけました。ちょうど私が探していたもの。

+0

私は間違っていたので私の答えを削除しましたが、上の方にはこれほど価値のあるこのアプローチについての警告が含まれていました: 'FindWindow'を使用してタスクバーウィンドウに到達し、まず、ポータブルではありません。Windowsのすべてのバージョンがタスクバーのウィンドウに同じ名前を使用するわけではありません。将来のバージョンのWindowsがすべて同じ方法を実装するという保証はありません。たとえば、マイクロソフトでは、タスクバーに子ウィンドウをすべて実装して、コードを徹底的に破棄することもできます。 –

+0

このような文書化されていない機能を利用するには、非常に注意しなければなりません。マイクロソフトでは、この記事で与えられたウィンドウ名を公開していません。彼らはSpy ++を使って試行錯誤して見つけられる。そのような機能を利用することは、少なくともあなたのコードがうまくいくかどうか気にするなら、一般的には悪い考えです。あなたは常に警戒する必要があります。私はこれがほんの1つのWindows版用に設計された内部アプリだと思います。 –

+0

私は考えられる問題を認識しています。しかし、それに対して正式な解決策がないので、非公式の人は(Windows開発のように)しなければならない。私はWinXP、Vista、Win7の下でテストし、変更なしで32ビットと64ビットのすべてで動作します。それは私にとって今のところ十分です。私は、それが将来のバージョンでどのように成立しているかを見なければならないでしょう。 – Harald

関連する問題