编辑:在同一个VSMacros项目中创建新模块解决了这个问题。
以下宏仅在从Visual Studio中打开宏IDE并从那里运行宏时才有效。
如果我可以从Visual Studio实例中直接从宏资源管理器中单击宏,那就更有用了。
我必须做一些明显错误的事情,但我以前从未使用过VS宏。在任何一种情况下都不会出现MessageBox。
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
答案 0 :(得分:1)
来自MSDN上的this文章,我想我找到了另一个可能的答案。该主题的主要建议是:
在“工具”,“选项”菜单,“加载项/宏”安全性部分中,选中“允许宏运行”复选框
答案 1 :(得分:0)
宏编辑器中的消息框是:
MsgBox("Your Text Here") = Resultxx
祝你好运。