Pull to refresh

Программируем Windows 7: Taskbar. Часть 6 – AppId

Reading time1 min
Views1.5K
Недавно я писал о том, как можно организовать отображение вкладок для дочерних окон нашего приложения. В этом случае нам требовалось отобразить дочерние окна нашего приложения. Для этих целей мы пользовались классом CustomWindowManager.



Такого же эффекта можно добиться, если мы запустим несколько экземпляров одного и того же нашего приложения. В этом случае Windows 7 определит что это одно и то же приложение и сгруппирует окна в один значок.



Давайте попробуем разобраться как это работает. В основе всего лежит такое понятие как Application ID. Для каждого окна мы можем задать свой ID. Эту особенность также можно использовать тогда, когда необходимо избежать такого поведения. В этом случае нужно задать различные AppId для каждого такого окна. Сделать это можно используя .NET Interop Sample Library. Для этого необходимо вызвать метод SetAppId.

private void SetAppIdButton_Click(object sender, EventArgs e)
{
WindowsFormsExtensions.SetAppId(this, “SomeAppId”);
}


Таким образом, мы можем задать различные AppId для каждого окна и они не будут группироваться.



Однако, аналогичным образом также возможно сгруппировать несколько окон от разных приложений. Для этого необходимо задать одинаковый AppId для каждого из окон. И в этом случае панель задач Windows 7 сгруппирует эти приложения в один значок. Например, в данном случае я задал одинаковый AppId для разных окон из разных приложений и эти окна оказались сгруппированными в панели задач Windows 7.



Демонстрационное приложение:
Taskbar-AppId.zip
Tags:
Hubs:
+29
Comments38

Articles

Change theme settings