这篇文章应该算是上篇文章的续,跟上个一样,不过是利用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(续)相关推荐

  1. [翻译]Kean' Blog 在一个.NET应用程序中调用AutoCAD

    程序员通常要么整合功能到AutoCAD(利用其Plug-in结构,以增加命令,用户界面,对象等),或者调用它自动完成任务.显然,这两者之间的界限已经比较模糊,但是今天我们重点介绍第二类. 用于帮助理解 ...

  2. SQL Server 2005 - 如何在预存程序中调用另外一个预存程序

    要在一个预存程序中调用另外一个预存程序,可以使用下列两种方式之一进行调用:  <?xml:namespace prefix = o /> EXECUTE <欲执行之预存程序的名称&g ...

  3. 本地方法(JNI)——从java 程序中调用C函数

    [0]README 1) 本文部分文字描述 转自 core java volume 2 , 旨在理解 本地方法--从java 程序中调用C函数 的基础知识 : 2) for source code, ...

  4. 苹果系统手机调用java线程出错_在多线程Java应用程序中调用已编译的m-file(.jar)时出错...

    我有一个简单的M文件 function [fRate,Height,Width] = media(filename) obj = mmreader(filename); fRate = obj.Fra ...

  5. 在C# winform程序中调用WPF写的数学公式编辑器

    由于工作原因,需要在程序中加入数学公式编辑功能,因此在网上找了不少开源数学公式程序.经过比较,最终选择了Math-Editor-master程序(可以在github上搜索此名称). 我的程序(简称主程 ...

  6. 在VB应用程序中调用Excel2000

    Visual Basic简称(VB)是设计Windows应用程序强有力的开发工具,"全球绝大多数Windows应用程序都是用VB开发的": Excel是目前使用最广泛的办公应用软件 ...

  7. Linux jsp php集成环境,ImageMagick在程序中调用(linux环境,jsp,php)

    最近发现图片格式为cmyk时,图片上传浏览器不能正常显示,图片缩放会变成黑屏, 后来通过google发现imagemagick的功能很强大,安装可以采用两种方法,1)直接与php编译安装,在程序中调用 ...

  8. 在Delphi程序中调用控制面板设置功能

    ====================================================== 注:本文源代码点此下载 ================================= ...

  9. 安卓程序中调用 linux 命令

    博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 在研究串口 jni 开发的时候,遇到了这样一段代码: Process su;su = Runtime.getRuntim ...

最新文章

  1. 线段树分裂与合并的模板以及空间大小的计算
  2. 如何查看方法在哪里被调用
  3. leetcode算法题--连续的子数组的和
  4. 记录:C#编程中的字符串
  5. AJAX应用和传统Web应用有什么不同
  6. 浅谈 RocketMQ、Kafka、Pulsar 的事务消息
  7. Feature Engineering 特征工程 3. Feature Generation
  8. LeetCode 628. 三个数的最大乘积
  9. 为什么计算机专业被称为宇宙机,量子计算机为何被称为宇宙中最强大的计算机...
  10. android复杂列表滑动卡顿,Android 列表滑动性能优化总结
  11. 洛谷 P1754 球迷购票问题
  12. java 异常处理线程_转:Java子线程中的异常处理(通用)
  13. 断点vue_vue 事件代理
  14. 用java语言求前50个素数_Java求质数的几种常用算法总结
  15. ActiveMQ官方文档翻译-内嵌消息中间件
  16. goldfish安装
  17. 计算机专业的八字,生辰八字自动计算器软件 生辰八字在线计算器
  18. wpf自己画表盘_练手WPF(一)——模拟时钟与数字时钟的制作(上)
  19. js判断background颜色明暗色调,以设置白/黑字体颜色
  20. ati自定义分辨率_修改三国无双 游戏自定义分辨率教学 6/19更新

热门文章

  1. DevOps领域少不了这只向前的“青蛙”
  2. Razor引擎学习:RenderBody,RenderPage和RenderSection
  3. JS逆向之webpack打包网站实战
  4. t3软件怎么生成报表_用友T3怎么生成财务报表 谢谢
  5. 使用pd4ml 将html转换为pdf
  6. java jceks 密钥_Java中不同类型的密钥库(Keystore) – 概述
  7. lucene搜索引擎总结
  8. android 蓝牙串口连接不上,安卓手机搜索不到蓝牙模块HC-06,是怎么回事?
  9. 计算机英语ppt演讲稿,英语的ppt演讲稿
  10. 大数据技术助推数字化智慧城市管理平台的搭建