// Получаем список открытых проектов public static Dictionary <string, e3Application> GetE3ProcessDictionary() { Dispatcher disp = new Dispatcher(); Dictionary <string, e3Application> E3ProcessDictionary = new Dictionary <string, e3Application>(); if (disp != null) { Process[] processList = Process.GetProcessesByName("E3.series"); // получаем процессы E3.series foreach (Process process in processList) { e3Application App = (e3Application)disp.GetE3ByProcessId(process.Id); if (App == null) { continue; // на случай открытого окна БД, повисших процессов и т.п. } e3Job Prj = (e3Job)App.CreateJobObject(); string project = Prj.GetPath() + Prj.GetName() + Prj.GetType(); if (Prj.GetName() == "") { continue; // на случай окна без проекта } E3ProcessDictionary.Add(project, App); } ; } ; return(E3ProcessDictionary); }
/// <summary> /// Перегрузка при подключении к конкретному проекту. prjPath - полный путь к файлу /// </summary> /// <param name="prjPath"> Путь к файлу</param> /// <param name="quitThenDone"> Flag True если нужно будет закрыть приложение </param> /// <returns></returns> public static e3Application ToE3(string prjPath, out bool quitThenDone) { Dispatcher disp = new Dispatcher(); quitThenDone = false; if (disp != null) { Process[] processList = Process.GetProcessesByName("E3.series"); // получаем процессы E3.series foreach (Process process in processList) { e3Application App = (e3Application)disp.GetE3ByProcessId(process.Id); if (App == null) { continue; // на случай открытого окна БД, повисших процессов и т.п. } e3Job Prj = (e3Job)App.CreateJobObject(); string project = Prj.GetPath() + Prj.GetName() + Prj.GetType(); // MessageBox.Show(project + "\n" + PrjPath, "Ошибка", MessageBoxButtons.OK); if (string.Equals(project, prjPath, StringComparison.CurrentCultureIgnoreCase)) { e3App = App; break; } ; } ; // Если не запущенного проекта - запускаем новый процесс e3App = (e3Application)disp.OpenE3Application(prjPath); quitThenDone = true; } ; if (e3App == null) { MessageBox.Show("Нет e3App.", "Ошибка", MessageBoxButtons.OK); } return(e3App); }