Быстрое Подключение К Процессу

В Visual Studio есть удобная возможность присоединения к запущенному процессу (Инструменты — Присоединиться к процессу.

) во время отладки.

Удобно до тех пор, пока вам не придется делать это с завидной регулярностью, тогда выбор нужного процесса из открывшегося списка становится крайне утомительным.

Именно поэтому возникает желание автоматизировать эти простые действия.

Давайте рассмотрим решение на примере Visual Studio 2010; принципиальных отличий от других версий нет. 1. Сначала в Macro Explorer (Инструменты – Макросы – 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. Добавьте панель инструментов для кнопки вызова макроса (Вид - Панели инструментов - Настроить.

).



Быстрое подключение к процессу



Быстрое подключение к процессу

5. Добавьте кнопку (команду).

Как ни удивительно, макросы относятся к категории «Макросы».



Быстрое подключение к процессу



Быстрое подключение к процессу

Теперь у нас есть панель с кнопкой быстрого присоединения к процессу.



Быстрое подключение к процессу

6. Последний штрих.

Назначьте комбинацию клавиш для запуска макроса.



Быстрое подключение к процессу

Вуаля! Отныне вы можете вызвать Attach к нужному процессу в один клик или с помощью горячих клавиш.

Теги: #Visual Studio #присоединиться к процессу #Visual Studio

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.