[求助]想问一个题,怎么删除自身
我要在一LISP里要删除自身,怎么办?主要问题是我怎么取得我这个已经编译成ARX文件或是VLX文件的路径,还有怎么从CAD系统里卸载自身,并删除ARX文件或是VLX文件,谢谢了惨,没人来告诉我吗????????????/版主呢?陈老师~~~~~~~~~~~~~~~
APPLOAD里有加载卸载(有些是不可卸载的,须重起CAD)
你问的删除自身是指什么意思?指让此命令无效吗?如是这样可用:(如不是,无须再看)
新建文件(假设存为 d:\unload.lsp)
在此文件下创建与你要删除的命令想同的命令(如:newapp)
(defun c:newapp()
(princ))
再原文件(就是“自身”所在的文件)家一个卸载函数
(defun c:unloadme()
(load "d:\\unload.lsp")
)
这样,原来的命令newapp就没有任何动作了
好,我顶一下
删除自身,没明白什么意思?取得文件路径用findfile函数。
卸载自己,不大好办,
删除文件,好像lsp办不到??
不是这样的
首先我不知道该文件的路径啊,怎么找到该文件?而且我是要在同一个文件里要卸载自身,不是用一个文件里的函数卸载另一个文件,卸载了之后再删除他,还比较麻烦
如果你不知道文件在哪儿,那你就得一个文件夹一个文件夹搜索,而且文件夹里又有文件夹,这将是一个嵌套的过程,我曾经用VC做过这样的搜索,很麻烦,而且比较慢。(可能别人会有些比较好的搜索方法),不过我觉得还是你对文件的位置做些限制,或要求已知文件路径比较方便些。你的另一个问题我还是不是很懂什么意思,卸载我倒没试过,如果是仅使它无效,我觉得这个方法还行,tmp.lsp只是一个辅助文件,在使用过程中,效果同“卸载”自身相同,只需加载程序文件,使用卸载函数后,命令便无效。至于文件间的调用在函数里自己实现了。是一种形同卸载自身。
如果找到好的卸载自身的方法别忘了告诉我一声。
建议
1、不知文件的路径,该知道文件名吧。用findfile就可以搜索,因为,既然是用于CAD的程序,应该是放在CAD可搜索路径下。2、在同一个文件里,要做到,先卸载本身,再删除该程序,恐怕做不到,你想,卸载了,就不再执行任何动作了。
3、不明白你的意图,要这样做到底为什么?加密?不让别人用?还是别的?
好像不行试了
写一个TMP.lsp是可以,不过我试过了,我在本程序里调用那个tmp.lsp,然后TMP.lsp里调用arxunload的话,我在R14里试过CAD里出错跳掉的,然后tmp下面的删除文件的函数就不被运行了~~还有就是位置问题,应该说cad加载了一个arx或是vlx文件的话就应该知道那个文件的位置的啊,可我不知道怎么取得这个信息~~~~5555555555
你把程序给我看看
页:
[1]