Visual Studio 2010 в таскбаре Windows 7

Источник: realcoding
fo2rist

Недавно вышел новый Eclipse Helios, среди нововведений которого есть поддержка таскбара Windows 7 и дока Mac OS X. В частности, Эклипс может отображать прогресс сборки, наличие ошибок и предупреждений.

К хорошему быстро привыкаешь, и мне захотелось иметь нечто подобное в Visual Studio 2010. Подходящего расширения в сети не нашлось, так что пришлось делать его самому.

Плагинов к VS я раньше никогда не писал, но на сайте Microsoft нашелся и SDK и много информации по нему. Для работы с новым таскбаром в .Net также имеется готовый набор библиотек и примеров: Windows API Code Pack.

Технические детали


После создания шаблонного проекта "Visual Studio Add-in" остается только заполнить кодом методы:


public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
public void OnDisconnection(ext_DisconnectMode disconnectMode, ref Array custom)
public void OnStartupComplete(ref Array custom)
public void OnBeginShutdown(ref Array custom)


Я использовал первые три:


  • OnConnection - для проверки на поддержку таскбара
  • OnStartupComplete - для инициализации доплнения,
  • OnDisconnection - для корректного завершения работы.

Проверка на поддержку таскбара выглядит так:


if (!TaskbarManager.IsPlatformSupported)
{
MessageBox.Show("Win7taskbar plugin requires to be run on Windows 7", "Plugin needs Windows 7", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
} 


Интерфейсы

_applicationObject.Events.BuildEvents, _applicationObject.Events.DebuggerEvents, _applicationObject.Events.SolutionEvents

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


Получить список ошибок и предупреждений студии можно через

_applicationObject.ToolWindows.TaskList

Как работать с таскбаром, я узнал из замечательного руководства тут. Остальное было делом техники.

Что получилось


Теперь, при сборке я вижу индикатор прогресса (к сожалению, процент выполнения студия не сообщает):



Если на момент окончания сборки есть предупреждения или ошибки, в таскбаре появляется одна из иконок:


 

Кроме того, так как я часто открываю по три-четыре экземпляра студии, решил добавить также ThumbnailToolbar для действий "Build Solution", "Debug" и "Run":




Заключение


Получившийся результат я упаковал в msi и выложил в Visual Studio Gallery, его же и просто файлы в zip-архиве, на всякий случай выложил на narod.ru.

У меня работает, надеюсь, у вас тоже! ;)


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=30025