Esempio n. 1
0
        // Получаем список открытых проектов
        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);
        }
Esempio n. 2
0
        /// <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);
        }