我有一个可以帮助探索、生成和打开 Visual Studio 项目的应用程序。我正在使用 Activator 方法创建 Visual Studio 流程,如下所示:
using System;
using System.Windows.Forms;
using EnvDTE80;
using System.Runtime.InteropServices;
namespace TestWindowsApp
{
static class Program
{
[DllImport("user32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Type type = Type.GetTypeFromProgID("VisualStudio.DTE.14.0");
DTE2 dte = (DTE2)Activator.CreateInstance(type, true);
dte.MainWindow.Visible = true;
dte.UserControl = true;
SetForegroundWindow((IntPtr)dte.MainWindow.HWnd);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
它工作得很好,除了它创建的过程是隐藏的。如果我使用 Process Explorer 的“查找窗口的进程”功能,我会收到错误消息:
进程资源管理器错误
拥有进程是 devenv.exe(进程 ID 22196),当前在进程列表中不可见。
好的
有没有办法使用这种方法,但使过程可见?与手动打开它相比,它使使用生成的视觉工作室更加困难。