Управление группировкой панели задач Windows 7 для моего приложения

Моя программа должна открывать ряд информационных окон по запросу пользователя и хотела бы реализовать какую-то настраиваемую группировку на панели задач Windows 7.

Желаемая функциональность: все мои информационные окна должны быть сгруппированы (если в пользовательской системе включена группировка), но мое главное окно НЕ должно быть сгруппировано с информационными окнами.

Я не могу породить новый процесс для моих информационных окон.

Мой мыслительный процесс заключается в том, что может быть способ изменить дескриптор окна информационного окна, чтобы панель задач могла сгруппировать его отдельно, но я, честно говоря, даже не знаю, с чего начать.

РЕДАКТИРОВАТЬ

Я нашел новую информацию. Я могу быть в состоянии сделать что-то с SHGetPropertyStoreForWindow как указано здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx

... Как свойство любого из запущенных окон приложения. Это может быть установлено одним из двух способов: если разные окна, принадлежащие одному процессу, требуют разных AppUserModelID для управления группировкой панели задач, используйте SHGetPropertyStoreForWindow, чтобы получить хранилище свойств окна и установить AppUserModelID в качестве свойства окна.

2 ответа

Решение

Я решил это, используя Windows API Code Pack для.NET и следующий код:

TaskbarManager.Instance.SetApplicationIdForSpecificWindow(window, guid);

Окно, назначенное с тем же идентификатором, будет сгруппировано - окна с уникальным идентификатором будут иметь отдельный значок на панели задач.

Идентификатор модели пользователя приложения говорит:

"Если разные окна, принадлежащие одному процессу, требуют разных AppUserModelID для управления группировкой панели задач, используйте SHGetPropertyStoreForWindow, чтобы получить хранилище свойств окна и установить AppUserModelID в качестве свойства окна".

Другие вопросы по тегам