有没有一种方法可以通过编程查看Visual Studio实例打开了什么解决方案(而不是作为插件)

本文关键字:什么 解决方案 插件 Studio 方法 一种 可以通过 编程 有没有 Visual 实例 | 更新日期: 2023-09-27 18:20:19

很直接,但不知道它是否可行。基本上,我想要一个winform(而不是VS的插件),它可以检索当前加载在Visual Studio的开放实例中的解决方案列表。

编辑:为了根据下面的评论进行澄清,我正在寻找加载的解决方案完整路径(例如,C:'projects'myrandomproject.sln

有没有一种方法可以通过编程查看Visual Studio实例打开了什么解决方案(而不是作为插件)

您可以通过运行对象表(ROT)枚举Visual Studio的运行实例。参见IRunningObjectTableGetRunningObjectTable

然后,您可以使用ROT中的标识符为每个正在运行的实例获取对DTE2对象的引用

使用DTE2.Solution。您可以从其FullName属性获取其路径。

这只是让你开始的东西。。你必须把它调整到你想要的任何方式。。

4.如果你只想得到程序的名称,而不是打开的文件夹,那么使用以下代码

foreach (Process p in Process.GetProcesses().Where(p => p.MainWindowHandle != IntPtr.Zero && p.ProcessName != "explorer")) 
{  
   Console.WriteLine(p.ProcessName); 
} 
Console.ReadKey();

2.如果你只想让用户而不是Windows启动进程,那么使用以下代码

foreach (Process p in Process.GetProcesses().Where(p => p.MainWindowHandle != IntPtr.Zero)) 
{  
   Console.WriteLine(p.ProcessName); 
} 
Console.ReadKey();
相关文章: