AutoCAD.net 插件中获取AutoCAD 启动命令行的参数

简介:


今天一个童鞋问到如何在AutoCAD插件中获取AutoCAD 启动时的参数。用户故事是这样的,AutoCAD启动之前先由自己写的一个winform程序进行用户验证,如果验证通过则通过Process.Start启动AutoCAD,并给他传递一个token作为参数。这个token当然最好的加密的。然后在自己的插件中获取这个Token,如果能获取token,那么这个用户是合法用户,下面的功能可以正常执行;如果没有取到token,那这个用户还没经过用户验证就直接使用插件功能了,多半是非法用户或者盗版的, 那对不起,你就先别用我的插件了。 思路很好,关键是获取AutoCAD在启动时的参数。

 

这个可以通过Environment.GetCommandLineArgs()实现,下面是一段测试代码:

        [CommandMethod("Args")]
        public void GetAcadArguments()
        {
            Document dwg = Application.DocumentManager.MdiActiveDocument;
            Editor ed = dwg.Editor;

            int i = 0;
            foreach (string arg in Environment.GetCommandLineArgs())
            {
                ed.WriteMessage("\n Arg{0}=\"{1}\"", i++, arg);
            }

        }

在启动调试时添加几个参数来做测试,比如我加了 /myArg1  和 nologo:

image

 

看一下输出结果:

image

这个答案来自AutoCAD论坛,大家遇到什么问题,先在论坛上看一下,说不定已经有其他人问过了。没有的话在论坛上发个贴,n多牛人帮忙:)

http://forums.autodesk.com/t5/NET/Getting-command-line-parameters/td-p/3534742

 

再继续讨论一下,上面提到启动AutoCAD的方法是通过Process.Start来启动进程的方式,如果要通过COM调用的方式启动AutoCAD呢,这种方法就不行了,不过这就演变为进程间通信问题了。这个有很多办法,大家可以自己搜一下。大家还可以参考Kean的博客,介绍了一种办法,并有代码示例:

http://through-the-interface.typepad.com/through_the_interface/2009/05/interfacing-an-external-com-application-with-a-net-module-in-process-to-autocad-redux.html

 

 

另外,上面提到那个插件的用户验证问题,还可以看一下这个博客,利用Windows Azure云平台进行用户验证,比在本地弄token更可靠些。

http://adndevblog.typepad.com/autocad/2012/10/trial-licensing-and-usage-metrics-gathering-for-autocad-plugin-using-azure-cloud.html

作者: 峻祁连
邮箱:junqilian@163.com 
出处: http://junqilian.cnblogs.com 
转载请保留此信息。


本文转自峻祁连. Moving to Cloud/Mobile博客园博客,原文链接:http://www.cnblogs.com/junqilian/archive/2013/02/20/2919709.html ,如需转载请自行联系原作者
相关文章
|
5月前
|
XML 开发框架 .NET
ASP.NET COR3.1 集成日志插件NLog
ASP.NET COR3.1 集成日志插件NLog
72 0
|
8天前
|
开发框架 JavaScript 前端开发
一个适用于 ASP.NET Core 的轻量级插件框架
一个适用于 ASP.NET Core 的轻量级插件框架
|
9天前
|
前端开发 JavaScript C#
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
|
2月前
|
开发框架 前端开发 .NET
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
|
4月前
|
JSON 开发框架 API
【推荐100个unity插件之20】一个强大的JSON处理库——Newtonsoft.Json(也称为Json.NET)
【推荐100个unity插件之20】一个强大的JSON处理库——Newtonsoft.Json(也称为Json.NET)
309 0
|
Kubernetes 安全 数据安全/隐私保护
【K8S系列】深入解析k8s网络插件—Weave Net
【K8S系列】深入解析k8s网络插件—Weave Net
978 0
|
5月前
|
机器学习/深度学习 存储 编解码
多任务学习新篇章 | EMA-Net利用Cross-Task Affinity实现参数高效的高性能预测
多任务学习新篇章 | EMA-Net利用Cross-Task Affinity实现参数高效的高性能预测
146 0
|
5月前
|
程序员 数据库
VB.NET—Bug调试(参数话查询、附近语法错误)
VB.NET—Bug调试(参数话查询、附近语法错误)
54 0
|
11月前
|
监控 数据可视化 前端开发
一个.NetCore前后端分离、模块化、插件式的通用框架
一个.NetCore前后端分离、模块化、插件式的通用框架
194 0
|
12月前
|
前端开发 JavaScript
.net core 前端传递参数有值 后端接收到的数据却是null
1、问题分析 在做接口测试时,偶然出现了前端输出有值,但是后端断点调试时却出现接收参数总是为null的情况 2、解决办法 前端打印log,看前端的每一个传值的数据类型,与后端请求参数类进行认真的一一比对 小技巧: ① 直接打印调用接口的传参值的数据类型,例如 console.log(type of this.form.name) --string console.log(type of this.form.age) --number 打印的数据类型与后端接口的参数类比对,查出不对应的类型 ② 关于非必填的值,默认传值可能出现空字符串(' ')、NaN值(Not a Number
272 0