Visual Studio 2008マクロは、マクロエクスプローラーではなく、マクロIDEからのみ機能します。
-
05-07-2019 - |
質問
編集:同じ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
解決
thisから MSDNの記事別の考えられる答えを見つけたと思います。そのスレッドの主な提案は次のとおりでした:
[ツール]、[オプション]メニューの[アドイン/マクロのセキュリティ]セクションで、[マクロの実行を許可する]チェックボックスをオンにします
他のヒント
マクロエディターのメッセージボックスは次のとおりです。
MsgBox("Your Text Here") = Resultxx
幸運。
所属していません StackOverflow