6

私のプログラムは、ユーザーが要求したときに一連の情報ウィンドウを開く必要があり、Windows 7 タスクバーに何らかのカスタム グループを実装したいと考えています。

必要な機能: すべての情報ウィンドウをグループ化する必要がありますが (ユーザー システムでグループ化が有効になっている場合)、メイン ウィンドウを情報ウィンドウとグループ化することはできません。

情報ウィンドウの新しいプロセスを生成できません。

私の考えでは、情報ウィンドウのウィンドウ ハンドルを何らかの方法で変更して、タスクバーを個別にグループ化する方法があるかもしれませんが、正直なところ、どこから始めればよいかさえわかりません。

編集

新しい情報を見つけました。ここに記載されているように、何かできるかもしれませんSHGetPropertyStoreForWindow: http://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx#where

...アプリケーションの実行中のウィンドウのプロパティとして。これは、次の 2 つの方法のいずれかで設定できます。 1 つのプロセスが所有するさまざまなウィンドウで、タスクバーのグループ化を制御するためにさまざまな AppUserModelID が必要な場合は、SHGetPropertyStoreForWindow を使用してウィンドウのプロパティ ストアを取得し、AppUserModelID をウィンドウ プロパティとして設定します。

4

2 に答える 2

2

アプリケーション ユーザー モデル IDは次のように述べています。

「1 つのプロセスが所有するさまざまなウィンドウで、タスクバーのグループ化を制御するためにさまざまな AppUserModelID が必要な場合は、SHGetPropertyStoreForWindowを使用してウィンドウのプロパティ ストアを取得し、AppUserModelID をウィンドウ プロパティとして設定します。」

于 2012-08-03T03:01:03.573 に答える
0

Windows API Code Pack for .NETと次のコードを使用して解決しました。

TaskbarManager.Instance.SetApplicationIdForSpecificWindow(window, guid);

同じ ID が割り当てられたウィンドウはグループ化されます。一意の ID を持つウィンドウには、個別のタスクバー アイコンが表示されます。

于 2012-08-03T03:46:21.630 に答える