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

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

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

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

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

Такого же эффекта можно добиться, если мы запустим несколько экземпляров одного и того же нашего приложения. В этом случае 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