Всем добрый день! Новичок в C#, новичок в API и в ООП в целом. Изучаю, изучаю, изучаю, но параллельно хотелось бы разбирать и актуальные задачи. Поэтому прошу помощи.
А задача такая: в некоем приложении есть кнопка, по нажатию которой я могу передать в свой будущий метод в виде аргументов
имя файла (полный путь) и
имя листа в этом файле.
От метода требуется: 1. запустить aCad;
2. загрузить указанный файл;
3. сделать нужный лист активным.
Как можно реализовать такой метод?Чтобы не подумали, что я уж совсем не удосужился покопаться по форуму и пошевелить извилинками, то вот что у меня наизвилилось из хаотично блуждающих в голове представлений о реализации такой задачи:
1. Для запуска acad использовать класс Process из System.Diagnostics
Process myAcad = new Process();
try
{
myAcad.StartInfo.UseShellExecute = false;
myAcad.StartInfo.FileName = @"path_to_acad.exe";
myAcad.StartInfo.CreateNoWindow = true;
myAcad.Start();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
2. Загрузить файл в acad Database через метод
ReadDwgFile()... Но вот тут уже неясность - как определить что процесс (acad) уже запущен и готов обработать файл, чтобы не вызвать крах?
Database db = new Database(false, true);
db.ReadDwgFile(file, FileShare.ReadWrite,false,"");
Database dbCurrent = Application.DocumentManager.MdiActiveDocument.Database;
но как понять, что в данный момент времени активный документ именно тот, что мне нужен (если открыты еще другие другие файлы, допустим)
3. Нужный лист сделать текущим -
LayoutManager.Current.CurrentLayout="имя листа"
Как выглядит реализация такой задачи на самом деле?
P.S. Это мой первый пост, первый шаг - не судите, если что.
P.P.S. Путь длинной в 1000 ли начинается с первого шага (Лао-Цзы)