taken from http://www.samsaffron.com/archive/2009/01/28/Simpler+debugging+of+Vista+Media+Center+plugins
To launch a media center plugin you have to execute ehshell.exe, and to debug these plugins you need to attach to exexthost.exe, a different process.
So, for example, our debug option for media browser says:
- Start external program: C:\Windows\ehome\ehshell.exe
- Command line arguments: /entrypoint:{CE32C570-4BEC-4aeb-AD1D-CF47B91DE0B2}{FC9ABCCC-36CB-47ac-8BAB-03E8EF5F6F22}
This configuration forces media center to launch our media browser plugin on start-up.
But… it only attaches to ehshell.exe forcing us a second, very annoying step which involves hunting down ehexthost.exe in the process list and attaching to it. It’s such a waste of time.
So … I wrote a little visual studio macro to take care of this shoddy work flow:
Public Sub CompileRunAndAttachToEhExtHost()
DTE.Solution.SolutionBuild.Build(True)
DTE.Solution.SolutionBuild.Debug()
Dim trd As System.Threading.Thread = _
New System.Threading.Thread(AddressOf AttachToEhExtHost)
trd.Start()
End Sub
Public Sub AttachToEhExtHost()
Dim i As Integer = 0
Do Until i = 50
i = i + 1
Try
For Each proc In DTE.Debugger.LocalProcesses
If (proc.Name.IndexOf("ehexthost.exe") <> -1) Then
proc.Attach()
Exit Sub
End If
Next
Catch e As Exception
' dont care - stuff may be busy
End Try
Threading.Thread.Sleep(100)
Loop
End Sub
To install it:
- Tools→Macros→Macros IDE…
- Expand MyMacros
- Paste the code into your macro file
Next, bind your macro to a shortcut key
- Tools→Options→Keyboard
- Click on “Press shortcut keys:”
- Press the shortcut you want (I use CTRL-SHIFT-ALT-A)
- Start a search in the “show commands containing… ” box. Search for “CompileRunAndAttachToEhExtHost”
- Click Assign
Your done …
Now to Compile→Launch and Debug your media center plugin all you need to do is click CTRL-SHIFT-ALT-A