4

Windows 7には、ApplicationIDの概念があります。これにより、(とりわけ)タスクバーの複数のアイコンをグループ化できます。実行中のプロセスのApplicationIDをc#から変更するにはどうすればよいですか?WinFormアプリのアイコングループを別のアプリケーションで作成しようとしています。Windows APIコードパックライブラリを使用して、Loadイベントに次のコードを貼り付けてみましたが、機能しませんでした。提案?

TaskbarManager.Instance.ApplicationId = "MyAppID";    
Process[] p = Process.GetProcessesByName("OtherProcess");
TaskbarManager.Instance.SetApplicationIdForSpecificWindow(p[0].MainWindowHandle, "MyAppID");
4

2 に答える 2

2

これを再現します。SDKのドキュメントが間違っていて、SetApplicationIdForSpecificWindow()メソッドのXMLのドキュメントが正しいと思います。

AppIdは、アプリケーションまたは個々のトップレベルウィンドウの一意のアプリケーションユーザーモデルID(AppID)を指定します。このウィンドウのタスクバーボタンには、メソッドクラスを通じて作成されたカスタムJumpListが保持されます。

特定のウィンドウにappIdを設定すると、ウィンドウはその親ウィンドウ/アプリケーションとグループ化されません。代わりに、独自のタスクバーボタンがあります。

私は強調しませんでした。

于 2010-03-05T18:36:18.650 に答える
0

(やや)明らかな解決策は、グループ化する両方のウィンドウのアプリケーションIDを同じIDに設定することです。

例:

TaskbarManager.Instance.SetApplicationIdForSpecificWindow(win1.MainWindowHandle, "W00T");
TaskbarManager.Instance.SetApplicationIdForSpecificWindow(win2.MainWindowHandle, "W00T");

Aaaaと両方のウィンドウがグループ化されます。

于 2011-10-04T03:02:27.400 に答える