プロセスへのクイックアタッチ

Visual Studioには、デバッグ中に実行中のプロセス(ツール-プロセスにアタッチ...)に参加する便利な機能があります。 あなたがうらやましい規則性でそれをしなければならないまで便利で、それから開くリストから正しいプロセスを選ぶことは非常に退屈になります。 そのため、これらの単純なアクションを自動化したいという要望があります。



Visual Studio 2010の例を使用したソリューションを検討してください。他のバージョンでは根本的な違いはありません。



1.最初に、マクロエクスプローラーで新しい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.最後の仕上げ。 キーの組み合わせを割り当ててマクロを実行します。





出来上がり! これ以降、マウスを1回クリックするか、ホットキーを使用して、目的のプロセスにAttachを呼び出すことができます。






All Articles