Activator.CreateInstance启动不同路径的应用程序
我正在开发这个项目,.Net EXE 将启动 AutoCAD 并运行一些代码。谷歌搜索后,这是我有的选项:
a)Activator.CreateInstance
b) Process.Start
如果我使用b),AutoCAD启动后很难控制代码。所以a)是唯一的选择。在我客户的计算机上,可能安装了多个 AutoCAD、不同版本(2008、2009、2010、2011 等)、不同偏好(AutoCAD Vanilla、AutoCAD Map、AutoCAD Architecture 等)。对于不同的版本,我可以添加版本号,例如2008年的AutoCAD.Application.17.1。现在不同的喜好是我唯一需要解决的问题。例如,我的计算机上安装了 AutoCAD Map 和 AutoCAD Architecture。它们位于不同的文件夹中。 Activator.CreateInstance 始终启动最新运行的实例。即使我只使用 AutoCAD Architecture,如何在我的 exe 中启动 AutoCAD Map。
I'm working on this project, a .Net EXE will start AutoCAD and run some code. After googling, here is options I have:
a) Activator.CreateInstance
b) Process.Start
If I use b), it is hard to control the code after AutoCAD start. so a) is the only choice. On my client's machine, it is possible have multiple AutoCAD installed, different version (2008, 2009, 2010, 2011, etc), different favor (AutoCAD Vanilla, AutoCAD Map, AutoCAD Architecture, etc). For different version, I can add the version number, like AutoCAD.Application.17.1 for 2008. Now different favor is the only problem I need figure out. e.g. I have AutoCAD Map and AutoCAD Architecture installed on my machine. They are at different folder. Activator.CreateInstance always start the latest running one. How I can start AutoCAD Map in my exe even I just use AutoCAD Architecture.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于 AutoCAD Map,我认为您可以使用 AutoCADMap.Application 作为程序 ID。对于 ACA,应该是 AecX.AecArchBaseApplication
For AutoCAD Map, I think you can use AutoCADMap.Application as program ID. For ACA, it should be AecX.AecArchBaseApplication
您可以指定程序 ID 及其版本来启动特定的 AutoCAD 版本,例如:
You can specify the program id and its version to start a particular AutoCAD version, somthing like: