Я пишу макрос для автоматизации процесса присоединения к рабочему процессу IIS (w3wp.exe, Windows Server 2k8) из Visual Studio. Проблема в том, что я часто запускаю два пула приложений одновременно, один в режиме x64 и один в режиме x86. Это означает, что в любой момент времени выполняются два процесса с именем w3wp.exe, и единственный способ различить их - это режим, в котором они работают. Когда я использую диалоговое окно «Присоединение к процессу», появляется столбец «Тип» это показывает эту информацию, поэтому я знаю, к какому w3wp.exe присоединиться, но не могу понять, как получить эту информацию в моем макросе.
На основании информации, приведенной здесь, я смог сформулировать следующее:
Function AttachToProcess(ByVal processName As String) As Boolean
Dim proc As EnvDTE.Process
Dim attached As Boolean
For Each proc In DTE.Debugger.LocalProcesses
If proc.Name = "w3wp.exe" Then
proc.Attach()
attached = True
End If
Next
Return attached
End Function
Но половину времени это просто захватывает неправильный процесс. Мне нужно второе заявление if, чтобы проверить режим / тип процесса. Я изучил классы, используя quickwatch, как мог, но просто не могу понять, где информация. Кто-нибудь может помочь? Спасибо!