[翻译]Kean' Blog 在一个.NET应用程序中调用AutoCAD(续)
这篇文章应该算是上篇文章的续,跟上个一样,不过是利用System.Diagnostics命名空间的类,实现启动CAD时候+上参数。
直接贴代码了,,呵呵~
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using Autodesk.AutoCAD.Interop;
const string progID = "AutoCAD.Application.17.1";
//在字符串前使用@字符,' /'不转义
const string exePath = @"c:/Program Files/Autodesk/AutoCAD 2008/acad.exe";
AcadApplication acApp = null;
// 首先确定没有AutoCAD进程在执行
try
{
acApp = (AcadApplication)Marshal.GetActiveObject(progID);
}
catch {}
if (acApp != null)
{
MessageBox.Show("An instance of AutoCAD is already running.");
}
else
{
try
{
// 使用System.Diagnostics命名空间的类,实现AutoCAD的带参数启动
ProcessStartInfo psi = new ProcessStartInfo(exePath, "/p myprofile");
psi.WorkingDirectory = @"c:/temp";
Process pr = Process.Start(psi);
// 等待AutoCAD准备好,貌似不用等CAD启动完成
pr.WaitForInputIdle();
// 使用COM方法连接到进程
// 无限循环直道捕捉到AutoCAD进程
// 如果不检查超时,或者让用户结束操作,就会有点危险
while (acApp == null)
{
try
{
acApp =
(AcadApplication)Marshal.GetActiveObject(progID);
}
catch
{
// 让应用程序检查自身的消息队列,以防用于取消操作或者退出
Application.DoEvents();
}
}
}
catch (Exception ex)
{
MessageBox.Show(
"Cannot create or attach to AutoCAD object: "
+ ex.Message
);
}
}
if (acApp != null)
{
acApp.Visible = true;
acApp.ActiveDocument.SendCommand("_MYCOMMAND ");
}
[翻译]Kean' Blog 在一个.NET应用程序中调用AutoCAD(续)相关推荐
- [翻译]Kean' Blog 在一个.NET应用程序中调用AutoCAD
程序员通常要么整合功能到AutoCAD(利用其Plug-in结构,以增加命令,用户界面,对象等),或者调用它自动完成任务.显然,这两者之间的界限已经比较模糊,但是今天我们重点介绍第二类. 用于帮助理解 ...
- SQL Server 2005 - 如何在预存程序中调用另外一个预存程序
要在一个预存程序中调用另外一个预存程序,可以使用下列两种方式之一进行调用: <?xml:namespace prefix = o /> EXECUTE <欲执行之预存程序的名称&g ...
- 本地方法(JNI)——从java 程序中调用C函数
[0]README 1) 本文部分文字描述 转自 core java volume 2 , 旨在理解 本地方法--从java 程序中调用C函数 的基础知识 : 2) for source code, ...
- 苹果系统手机调用java线程出错_在多线程Java应用程序中调用已编译的m-file(.jar)时出错...
我有一个简单的M文件 function [fRate,Height,Width] = media(filename) obj = mmreader(filename); fRate = obj.Fra ...
- 在C# winform程序中调用WPF写的数学公式编辑器
由于工作原因,需要在程序中加入数学公式编辑功能,因此在网上找了不少开源数学公式程序.经过比较,最终选择了Math-Editor-master程序(可以在github上搜索此名称). 我的程序(简称主程 ...
- 在VB应用程序中调用Excel2000
Visual Basic简称(VB)是设计Windows应用程序强有力的开发工具,"全球绝大多数Windows应用程序都是用VB开发的": Excel是目前使用最广泛的办公应用软件 ...
- Linux jsp php集成环境,ImageMagick在程序中调用(linux环境,jsp,php)
最近发现图片格式为cmyk时,图片上传浏览器不能正常显示,图片缩放会变成黑屏, 后来通过google发现imagemagick的功能很强大,安装可以采用两种方法,1)直接与php编译安装,在程序中调用 ...
- 在Delphi程序中调用控制面板设置功能
====================================================== 注:本文源代码点此下载 ================================= ...
- 安卓程序中调用 linux 命令
博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 在研究串口 jni 开发的时候,遇到了这样一段代码: Process su;su = Runtime.getRuntim ...
最新文章
- 线段树分裂与合并的模板以及空间大小的计算
- 如何查看方法在哪里被调用
- leetcode算法题--连续的子数组的和
- 记录:C#编程中的字符串
- AJAX应用和传统Web应用有什么不同
- 浅谈 RocketMQ、Kafka、Pulsar 的事务消息
- Feature Engineering 特征工程 3. Feature Generation
- LeetCode 628. 三个数的最大乘积
- 为什么计算机专业被称为宇宙机,量子计算机为何被称为宇宙中最强大的计算机...
- android复杂列表滑动卡顿,Android 列表滑动性能优化总结
- 洛谷 P1754 球迷购票问题
- java 异常处理线程_转:Java子线程中的异常处理(通用)
- 断点vue_vue 事件代理
- 用java语言求前50个素数_Java求质数的几种常用算法总结
- ActiveMQ官方文档翻译-内嵌消息中间件
- goldfish安装
- 计算机专业的八字,生辰八字自动计算器软件 生辰八字在线计算器
- wpf自己画表盘_练手WPF(一)——模拟时钟与数字时钟的制作(上)
- js判断background颜色明暗色调,以设置白/黑字体颜色
- ati自定义分辨率_修改三国无双 游戏自定义分辨率教学 6/19更新
热门文章
- DevOps领域少不了这只向前的“青蛙”
- Razor引擎学习:RenderBody,RenderPage和RenderSection
- JS逆向之webpack打包网站实战
- t3软件怎么生成报表_用友T3怎么生成财务报表 谢谢
- 使用pd4ml 将html转换为pdf
- java jceks 密钥_Java中不同类型的密钥库(Keystore) – 概述
- lucene搜索引擎总结
- android 蓝牙串口连接不上,安卓手机搜索不到蓝牙模块HC-06,是怎么回事?
- 计算机英语ppt演讲稿,英语的ppt演讲稿
- 大数据技术助推数字化智慧城市管理平台的搭建