(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Быстрый Attach to Process

Источник: habrahabr

В Visual Studio есть удобная возможность присоединяться к запущенному процессу (Tools - Attach to Process...) во время отладки. Удобная до тех пор, пока не приходится делать это с завидной регулярностью, тогда выбор нужного процесса из открывшегося списка становится крайне утомительным. Именно поэтому возникает желание автоматизировать эти нехитрые действия.

Рассмотрим решение на примере Visual Studio 2010, для других версий принципиальных различий нет.

 1. Сначала в Macro Explorer (Tools - Macros - Macro Explorer) создадим новый модуль AttachToProcess.

 

2. В коде модуля добавим функцию присоединения к процессу с параметром ProcessName.
Public Function AttachToProcess(ByVal ProcessName As String) As Boolean
    Dim success As Boolean
    success = True
    Try
        Dim debugger As EnvDTE80.Debugger2 = DTE.Debugger
        Dim transport As EnvDTE80.Transport = debugger.Transports.Item("Default")
        Dim name As String = System.Security.Principal.WindowsIdentity.GetCurrent().Name
        name = name.Substring(0, name.IndexOf("\"))
        Dim process As EnvDTE80.Process2 = debugger.GetProcesses(transport, name).Item(ProcessName)
        process.Attach()
    Catch ex As System.Exception
        success = False
    End Try
    Return success
End Function

 3. Добавим метод, который будет использоваться в дальнейшем для вызова из Visual Studio. В нем задается имя процесса.
Sub AttachToW3WP()
    If Not AttachToProcess("w3wp.exe") Then
        System.Windows.Forms.MessageBox.Show("Cannot attach to process")
    End If
End Sub

 Итоговый код модуля.
Public Module AttachToProcess
    Public Function AttachToProcess(ByVal ProcessName As String) As Boolean
    Dim success As Boolean
    success = True
    Try
        Dim debugger As EnvDTE80.Debugger2 = DTE.Debugger
        Dim transport As EnvDTE80.Transport = debugger.Transports.Item("Default")
        Dim name As String = System.Security.Principal.WindowsIdentity.GetCurrent().Name
        name = name.Substring(0, name.IndexOf("\"))
        Dim process As EnvDTE80.Process2 = debugger.GetProcesses(transport, name).Item(ProcessName)
        process.Attach()
    Catch ex As System.Exception
        success = False
    End Try
    Return success
    End Function

    Sub AttachToW3WP()
        If Not AttachToProcess("w3wp.exe") Then
            System.Windows.Forms.MessageBox.Show("Cannot attach to process")
        End If
    End Sub
End Module

 Можно запустить макрос вручную и проверить, что все работает как надо.

4. Добавим тулбар для кнопки вызова макроса (View - Toolbars - Customize...).
 
 
5. Добавляем кнопку (команду). Макросы находятся в категории Macros, как это ни удивительно.
 
 
 
Теперь у нас есть панель с кнопкой быстрого присоединения к процессу.
 
 
6. Последний штрих. Назначаем комбинацию клавиш для запуска макроса.
 
 
Вуаля! Отныне вызвать Attach к нужному процессу можно в один клик мышкой или с помощью горячих клавиш.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 09.11.2011 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год.
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
Microsoft 365 Business Standard (corporate)
Microsoft Office 365 Бизнес. Подписка на 1 рабочее место на 1 год
Microsoft 365 Business Basic (corporate)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Новые материалы
Мастерская программиста
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100