views:

535

answers:

2

Edit: Creating a new module in the same VSMacros project fixed the problem.


The following macro only works if I open the Macro IDE from Visual Studio and run the macro from there.

It'd be much more useful if I could just right click the macro from the Macro Explorer from my Visual Studio instance.

I must be doing something obviously wrong, but I've never worked with VS macros before. The MessageBox does not appear in either case.

Option Strict Off
Option Explicit Off
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Imports System.Security.Principal
Imports System.Windows.Forms

Public Module AttachToSdtProcess
    Sub AttachToSdtProcess()
        Try
            'If MessageBox.Show("Attach to SDT.exe", "Caption", _
            '            MessageBoxButtons.OKCancel) = DialogResult.Cancel Then
            'Return
            'End If

            Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
            Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
            Dim compName As String = WindowsIdentity.GetCurrent().Name
            compName = compName.Substring(0, compName.IndexOf("\"))
            Dim proc2 As EnvDTE80.Process2 = _
                    dbg2.GetProcesses(trans, compName).Item("TheExecutable.exe")
            If proc2 Is Nothing Then
                MessageBox.Show("Could not find TheExecutable.exe")
            End If
            proc2.Attach2(dbgeng)
        Catch ex As System.Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Module
+1  A: 

From this article on MSDN I think I found the another possible answer. The main suggestion of that thread was to:

In the Tools, Options menu, Add-Ins/Macros security section, check the checkbox "Allow macros to run"

A: 

Hi, the messagebox is the macro editor is : MsgBox("Your Text Here") = Resultxx

Good Luck.

Ricardo