2017-05-24 9 views
-4

どのようにいくつかのこと、新しいプロセスは、タスクバーのリストに来た場合.Iは、通知を探していますウィンドウ内のすべてのタスクバー項目の詳細を取得するために、任意のアイデアは、ウィンドウズのタスクバーの項目

+0

タスクバーに表示されないプロセスとは何ですか?これとは別に、あなたは[このサイトのルール](https://stackoverflow.com/help/how-to-ask)に従っていくつか提供する必要があります。 – HimBromBeere

+0

これは簡単な方法ではありません。なぜなら、根本的な問題を別の方法で解決する必要があるため、この情報が必要な理由です。 –

答えて

3

直接タスクバーの項目を列挙する公式APIはありません、またはそれらの詳細を問い合わせることができます。

  • 可視トップレベル所有されていないウィンドウ、またはWS_EX_APPWINDOW拡張スタイルを有する可視ウィンドウ:

    Aタスクバーボタンが作成されます。これらのウィンドウは、ITaskbarList::AddTab()を使用して手動でタスクバーに追加され、ウィンドウ

  • 等、容易 IsWindowVisible()GetParent()/ GetWindow(GW_OWNER)GetWindowLongPtr(GWL_EXSTYLE)を使用して利用可能な各ウィンドウをチェック EnumWindows()コールバックを使用して検出することができます。これらのウィンドウは列挙できません。私がそれらを発見すると考えることができる唯一の方法は、標準の CLSID_TaskbarList COMオブジェクトを、すべてのプロセスにわたってすべての ITaskbarList呼び出しをインターセプトするカスタムDLL実装に置き換えることです。

+0

[UIオートメーション](https://msdn.microsoft) .com/en-us/library/windows/desktop/ff486375(v = vs.85).aspx)を使用して、タスクバーボタンを列挙し、場合によってはタスクバーボタンの追加または削除時にイベントを聴くこともできます。 – zett42

関連する問題