Есть ли способ программно увидеть, какое решение имеет экземпляр Visual Studio (не как плагин)? - PullRequest
1 голос
/ 13 января 2012

Довольно прямолинейно, но на самом деле не знаю, возможно ли это вообще.По сути, я хотел бы иметь winform (НЕ плагин для VS), который извлекает список решений, которые в настоящее время загружаются в открытых экземплярах Visual Studio.по комментариям ниже, я ищу загруженный решения полный путь (например, C:\projects\myrandomproject.sln

Ответы [ 2 ]

3 голосов
/ 13 января 2012

Вы можете перечислить запущенные экземпляры Visual Studio через таблицу запущенных объектов (ROT). См. IRunningObjectTable и GetRunningObjectTable.

Затем вы можете получить ссылку на объект DTE2 для каждого запущенного экземпляра , используя идентификатор из ROT .

Используйте DTE2.Solution. Вы можете получить его путь из свойства FullName.

0 голосов
/ 13 января 2012

Это что-то только для того, чтобы вы начали ... вам придется настроить его так, как вам хочется ...

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();
...