Мультимониторная панель задач в .Net - PullRequest
2 голосов
/ 27 мая 2010

У меня есть идея написать мультимоторное приложение панели задач на c # для windows xp Итак, есть ли у кого-нибудь информация, как

  • поставить панель задач на второй монитор,
  • чтобы использовать стили Windows,
  • для предотвращения запуска приложений на второй монитор появится по умолчанию панель задач,
  • и так далее ...

Любая помощь будет ... полезной)))

1 Ответ

2 голосов
/ 27 мая 2010

Вы можете P / Invoke SHAppBarMessage (), чтобы создать панель задач. APPBARDATA.hWnd, который вам нужен, может быть просто классом Handle of Form. Все идет так, как вы показываете.

Получение уведомлений, необходимых для отображения активных окон на панели задач, будет намного сложнее. Вам нужно будет использовать глобальный хук WH_SHELL, установленный SetWindowsHookEx (), чтобы получать необходимые вам уведомления. Вы не можете установить этот хук в C #, для этого требуется неуправляемая DLL, которую вы можете внедрить в процесс. Вы найдете решающую помощь в этом проекте .

Заставить панель задач Windows не выполнять свою обычную работу будет невозможно, если только вы не найдете недокументированную информацию, которая вам понадобится. Microsoft не документирует это по уважительной причине, панель задач - важная часть инноваций в стиле Windows. Вполне видимый в Win7. Они не хотят, чтобы какой-либо код зависел от этого, у них была бы почти невозможная работа по обеспечению совместимости следующей версии Windows. Я бы порекомендовал вам полностью отключить панель задач Windows и заменить ее на собственную.

...