从DTE(EnvDte)获取进程ID

3

通过DTE mDte变量,可以获取Visual Studio实例的进程ID吗?请参考下面的代码。

    private static DTE mDte;

    public static void OpenVisualStudio()
    {
        Type visualStudioType = Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
        mDte = Activator.CreateInstance(visualStudioType) as DTE;

        if (mDte != null)
        {
            mDte.MainWindow.Visible = true;
        }

        // get process id of visual studio instance through mDte
    }

我不知道,但如果你在运行时检查对象,你可能能够弄清楚它。 - user1228
我已经通过以下方式解决了它: - Lasse
你是怎么解决的?分享一下答案。 - Chrono
我在上面添加了一条评论并想要给出答案,但是我无法在评论中分享代码,所以我在3分钟后的回答中给出了解决方案,请参考下面 :) - Lasse
2个回答

0

-1

DTE 对象具有一个 Debugger 属性,该属性具有一个 CurrentProcess 属性,该属性具有一个 ProcessID 属性。

int processId = dte.Debugger.CurrentProcess.ProcessID;

1
dte.Debugger.CurrentProcess 不是调试器的进程(即 devenv),而是当前正在调试的进程。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接