[风之影][原理]二次开发安装程序
本帖最后由 cabinsummer 于 2011-10-15 17:30 编辑很多人开发的lsp程序,希望有个安装程序,以免不停的配置。这里有个简便的安装方法,免费以飨读者。
假设D:\MyApp是要安装的路径,而安装的源文件放在E:\Setup下,包含三个文件MyApp.lsp、MyApp.mnu、MyApp.mnl以及其它一些文件。MyApp.lsp是自己开发的程序;MyApp.mnu是菜单文件;MyApp.mnl是菜单源码文件。
MyApp.mnl内容如下:
(setvar "CMDECHO" 0)
(load "MyApp.lsp")
(princ "MyApp loaded.\n")
(princ)
创建一个acaddoc.lsp。内容如下:
(setvar "CMDECHO" 0)
(setq env (getenv "ACAD"));;;查找支持路径
(if (not (vl-string-search "D:\\MyApp" env));;;如果没有新程序支持路径
(setenv "ACAD" (strcat env ";D:\\MyApp;"));;;建立新程序支持路径
)
(vl-file-copy (strcat (getvar "dwgprefix") "MyApp.lsp") (strcat "D:\\MyApp\\" "MyApp.lsp"))
(vl-file-copy (strcat (getvar "dwgprefix") "MyApp.mnu") (strcat "D:\\MyApp\\" "MyApp.mnu"))
(vl-file-copy (strcat (getvar "dwgprefix") "MyApp.mnl") (strcat "D:\\MyApp\\" "MyApp.mnl"))
;;;还有其它文件也可用类似方法复制
(command "menuload" "MyApp.mnu")
(entmake '((0 . "TEXT")(10 0 0 0)(11 200 240 0)(40 . 20)(62 . 1)(72 . 4)(1 . "安装成功")))
(command "ZOOM" "E")
(command "CLOSE" "Y")
在E:\Setup目录下随便创建一个dwg文件,比如叫Setup.dwg。双击打开Setup.dwg即可完成安装。
本程序还可以按照用户自定义扩展
我的安装原理是调用自启动程序将二次开发的程序(病毒是复制自身)复制到目标位置,并配置好AutoCAD,随即退出打开的图形(病毒不会关闭当前文件,而是悄悄潜伏起来,伺机传播)。由于lisp只在当前图形下有效,所以你以后不再打开那个目标目录里的文件即可。我也希望我的方法被用于正道。 老铁重现江湖了。其实,我一直也是用acad.lsp 以及acaddoc.lsp来加载我自己的命令了。
反而是一些莫名其妙的杀毒软件,天天喊着要删除,
以前自己做了一个.exe 的用于欢迎的界面也是被报警,放在自己的电脑里,还给自己下套不成
没吊他,直接把杀毒的卸载了事。 您好。。。二次开发安装可以设置“图形样板设置”吗? 无图无真相,都不知道是什么东西,还要钱买,太坑爹了。 LZ至少也贴个图片出来看看是什么样 不知道支不支持自动加启动组和支持路径呢?其实秋枫的那个安装程序挺完善的了,启动组,支持路径和菜单都自动加上了。没有钱,还是让楼下的买吧。 本帖最后由 chpmould 于 2011-9-21 00:17 编辑
简单的安装程序以前我也用VB写了一个,不知LZ这个有什么特别,是将信息存入DWG吗? autolisp开发的 很多人开发的lsp程序,希望有个安装程序,以免不停的配置。这里有个简便的安装方法,收费以飨读者。
假设D:\MyApp是要安装的路径,而安装的源文件放在E:\Setup下,包含三个文件MyApp.lsp、MyApp.mnu、MyApp.mnl以及其它一些文件。MyApp.lsp是自己开发的程序;MyApp.mnu是菜单文件;MyApp.mnl是菜单源码文件。
MyApp.mnl内容如下:
(setvar "CMDECHO" 0)
(load "MyApp.lsp")
(princ "MyApp loaded.\n")
(princ)
创建一个acaddoc.lsp。内容如下:
(defun s::startup()
(setvar "CMDECHO" 0)
(setq env (getenv "ACAD"));;;查找支持路径
(if (not (vl-string-search "D:\\MyApp" env));;;如果没有新程序支持路径
(setenv "ACAD" (strcat env "D:\\MyApp;"));;;建立新程序支持路径
)
(vl-file-copy (strcat (getvar "dwgprefix") "MyApp.lsp") (strcat "D:\\MyApp\\" "MyApp.lsp"))
(vl-file-copy (strcat (getvar "dwgprefix") "MyApp.mnu") (strcat "D:\\MyApp\\" "MyApp.mnu"))
(vl-file-copy (strcat (getvar "dwgprefix") "MyApp.mnl") (strcat "D:\\MyApp\\" "MyApp.mnl"))
;;;还有其它文件也可用类似方法复制
(command "menuload" "MyApp.mnu")
(entmake '((0 . "TEXT")(10 0 0 0)(11 200 240 0)(40 . 20)(62 . 1)(72 . 4)(1 . "安装成功")))
(command "ZOOM" "E")
(command "CLOSE" "Y")
)
在E:\Setup目录下随便创建一个dwg文件,比如叫Setup.dwg。双击打开Setup.dwg即可完成安装。
可以将acaddoc.lsp写为一句(defun s::startup()(load (strcat (getvar "dwgprefix") "setup.vlx")))。setup.vlx则为原来acad.lsp中间那部分程序编译后的文件。用以加密安装步骤。
本程序还可以按照用户自定义扩展
真是见钱眼开啊,看看都要钱,也没什么特殊的东东啊。 支持原创! acaddoc,acad,这类的lisp
我想98%的人会当成病毒!
还有2%的是从没中过cad毒的,也从不知道啥叫cad病毒的…
作为一个正规程序就不应该用这个启动! 本帖最后由 hustluo93 于 2011-9-21 09:26 编辑
思路很有创意,当然秋枫大侠的安装程序挺好的,如果是一个简单的安装程序的话,用它也是一个不错的选择。