Управление группировкой панели задач 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 в качестве свойства окна".