cabinsummer 发表于 2011-9-20 23:03:16

[风之影][原理]二次开发安装程序

本帖最后由 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即可完成安装。
本程序还可以按照用户自定义扩展

cabinsummer 发表于 2011-10-12 14:12:19

我的安装原理是调用自启动程序将二次开发的程序(病毒是复制自身)复制到目标位置,并配置好AutoCAD,随即退出打开的图形(病毒不会关闭当前文件,而是悄悄潜伏起来,伺机传播)。由于lisp只在当前图形下有效,所以你以后不再打开那个目标目录里的文件即可。我也希望我的方法被用于正道。

前生 发表于 2020-11-28 14:39:04

老铁重现江湖了。其实,我一直也是用acad.lsp 以及acaddoc.lsp来加载我自己的命令了。
反而是一些莫名其妙的杀毒软件,天天喊着要删除,
以前自己做了一个.exe 的用于欢迎的界面也是被报警,放在自己的电脑里,还给自己下套不成
没吊他,直接把杀毒的卸载了事。

xieling888 发表于 2018-9-27 15:27:19

您好。。。二次开发安装可以设置“图形样板设置”吗?

sen.sam 发表于 2011-9-20 23:29:18

无图无真相,都不知道是什么东西,还要钱买,太坑爹了。

chpmould 发表于 2011-9-20 23:41:18

LZ至少也贴个图片出来看看是什么样

sen.sam 发表于 2011-9-21 00:11:11

不知道支不支持自动加启动组和支持路径呢?其实秋枫的那个安装程序挺完善的了,启动组,支持路径和菜单都自动加上了。没有钱,还是让楼下的买吧。

chpmould 发表于 2011-9-21 00:13:31

本帖最后由 chpmould 于 2011-9-21 00:17 编辑

简单的安装程序以前我也用VB写了一个,不知LZ这个有什么特别,是将信息存入DWG吗?

cabinsummer 发表于 2011-9-21 00:26:01

autolisp开发的

齐天大圣3386 发表于 2011-9-21 05:52:13

很多人开发的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中间那部分程序编译后的文件。用以加密安装步骤。

本程序还可以按照用户自定义扩展

真是见钱眼开啊,看看都要钱,也没什么特殊的东东啊。

zctao1966 发表于 2011-9-21 07:49:40

支持原创!

fsxm 发表于 2011-9-21 07:52:36

acaddoc,acad,这类的lisp
我想98%的人会当成病毒!
还有2%的是从没中过cad毒的,也从不知道啥叫cad病毒的…
作为一个正规程序就不应该用这个启动!

hustluo93 发表于 2011-9-21 09:25:33

本帖最后由 hustluo93 于 2011-9-21 09:26 编辑

思路很有创意,当然秋枫大侠的安装程序挺好的,如果是一个简单的安装程序的话,用它也是一个不错的选择。
页: [1] 2 3 4 5
查看完整版本: [风之影][原理]二次开发安装程序