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 ,如需转载请自行联系原作者
目录
打赏
0
0
0
0
23
分享
相关文章
ASP.NET COR3.1 集成日志插件NLog
ASP.NET COR3.1 集成日志插件NLog
100 0
.NET CORE CliWrap 命令行
【11月更文挑战第12天】`CliWrap` 是一个用于在 .NET 应用中执行外部命令行工具的库,支持 .NET Core 及以上版本。它通过简洁的 API 提供了命令执行、参数传递、工作目录设置、环境变量配置及错误处理等功能。安装可通过 NuGet 完成,示例代码展示了如何使用 `CliWrap` 执行 `dir` 命令并获取输出。
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
120 0
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
【推荐100个unity插件之20】一个强大的JSON处理库——Newtonsoft.Json(也称为Json.NET)
【推荐100个unity插件之20】一个强大的JSON处理库——Newtonsoft.Json(也称为Json.NET)
665 0
多任务学习新篇章 | EMA-Net利用Cross-Task Affinity实现参数高效的高性能预测
多任务学习新篇章 | EMA-Net利用Cross-Task Affinity实现参数高效的高性能预测
254 0
VB.NET—Bug调试(参数话查询、附近语法错误)
VB.NET—Bug调试(参数话查询、附近语法错误)
85 0
JavaFX-MediaPlayer 参数URI格式问题:java.net.URISyntaxException: Illegal character in path at index X
JavaFX-MediaPlayer 参数URI格式问题:java.net.URISyntaxException: Illegal character in path at index X

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等