Ориентируясь на справку и используя возможности языка C#, можно с легкостью запустить новый процесс Solidworks из стороннего приложения. Для запуска Solidworks из программы нужно сделать несколько шагов.
Во-первых, нужно остановить и убить все запущенные процессы Solidworks:
Process[] processes = Process.GetProcessesByName("SLDWORKS"); foreach (Process process in processes) { process.CloseMainWindow(); process.Kill(); }
Во-вторых: создать сущность. Это можно сделать по CLSID:
Guid myGuid1 = new Guid("B4875E89-91F6-4124-BB63-2539727E98FA"); //GUID для Solidworks 2012 object processSW = System.Activator.CreateInstance(System.Type.GetTypeFromCLSID(myGuid1));
либо запуском по имени процесса:
object processSW = System.Activator.CreateInstance(System.Type.GetTypeFromProgID("SldWorks.Application"));
После создания и запуска можно уже назначать видимость процесса, т.е. будет ли окно видимо:
SldWorks SwApp = (SldWorks)processSW; SwApp.Visible = true;
После работы обязательно закрыть Solidworks или обнулить переменную SwApp:
SwApp.ExitApp(); //... SwApp = null;