Как я могу показать визуальный процесс студии, созданный с помощью EnvDTE
У меня есть приложение, которое может помочь исследовать, создавать и открывать проекты визуальных студий. Я создаю визуальный студийный процесс, используя метод Activator следующим образом:
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 (идентификатор процесса 22196), который в настоящее время не отображается в списке процессов.
Хорошо
Есть ли способ использовать этот метод, но сделать процесс видимым? Это делает работу с порожденной визуальной студией немного сложнее, чем если бы вы открывали ее вручную.