zoukankan      html  css  js  c++  java
  • c# autocad 通过进程向cad发送command

    主要的过程,日后操作autocad lt也应该可以用此方法
    1 var pros = Process.GetProcessesByName("acad");
    2             if (pros.Length == 0)
    3             {
    4                 MessageBox.Show("没有找到acad进程,请检查后再运行本程序!");
    5                 return;
    6             }
    7             SendCommandToAutoCAD("_circle 0,0,0 300 ", pros.First().MainWindowHandle);
    8             SetForegroundWindow(pros.First().MainWindowHandle);
    导入win32的api的函数
    1      [DllImport("user32.dll")]
    2         public static extern bool SetForegroundWindow(IntPtr hWnd);
    3 
    4         [DllImport("user32.dll", EntryPoint = "FindWindow")]
    5         public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
    6 
    7         [DllImport("user32.dll")]
    8         private static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, IntPtr wParam, ref COPYDATASTRUCT lParam);
    1  private struct COPYDATASTRUCT
    2         {
    3             public IntPtr dwData;
    4 
    5             public int cbData;
    6 
    7             public IntPtr lpData;
    8 
    9         }

    kean大神提供的向autocad 命令行发送命令的函数

     1 private void SendCommandToAutoCAD(string toSend, IntPtr hwnd)
     2         {
     3             const int WM_COPYDATA = 0x4A;
     4             COPYDATASTRUCT cds = new COPYDATASTRUCT();
     5             cds.dwData = new IntPtr(1);
     6             string data = toSend + "";
     7             cds.cbData = data.Length * Marshal.SystemDefaultCharSize;
     8             cds.lpData = Marshal.StringToCoTaskMemAuto(data);
     9             SendMessageW(hwnd, WM_COPYDATA, IntPtr.Zero, ref cds);
    10             Marshal.FreeCoTaskMem(cds.lpData);
    11         }
  • 相关阅读:
    汽车知识图谱
    医疗知识图谱与自动问答
    MongoDB(单节点)环境配置
    【字符串-01】
    【双指针-01】
    【排序-01】十大排序算法(Python实现)
    【队列-01】队列题目解析
    【栈-01】栈题目解析
    【贪心-02】贪心算法题目解析
    【贪心-01】贪心算法原理介绍
  • 原文地址:https://www.cnblogs.com/NanShengBlogs/p/13767036.html
Copyright © 2011-2022 走看看