明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6595|回复: 14

[【不死猫】] [原创]程序自动升级的方法

  [复制链接]
发表于 2009-8-4 17:26 | 显示全部楼层 |阅读模式
本帖最后由 nonsmall 于 2013-5-13 11:06 编辑

既然程序的加载路径和启动组的加入都已经实现

我们进一步处理就可以实现程序从本公司服务器上自动copy到个人电脑的自动升级:

大致思路如下:

1 程序第一次加载,可以把当前文件的路径和版本写入注册表,同时把程序加入启动组。

这步如果做安装包使用菜单调用更容易控制。

;;lyy 支持appload加载、命令行(load "xx")加载和直接拖曳加载

(vl-load-com)
(defun set_path (/ )
(while (/= 0 (getvar "cmdactive")) (command))
(princ "\n")
(setq str (getvar "lastprompt"))
(if (wcmatch (strcase str) "*(LOAD \"*")
    (setq n1 (vl-string-search "(LOAD \"" str)
          n2 (vl-string-search "\")" str)
          str (substr str (+ n1 8) (- n2 n1 7))
    )
    (setq str
      (vl-registry-read "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComDlg32\\OpenSaveMRU\\*"
        (substr (vl-registry-read "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComDlg32\\OpenSaveMRU\\*" "MRUList") 1 1)
      )
    )
)
str
)

2 判断当前加载符合原注册表数据

可以通过文件最后编辑的时间来判断是否有更新的文件,

(setq now_time (vl-file-systime str))
(setq new_time (vl-file-systime "z:\\2.lsp"))

如果是vlx,也可以加入一个TXT文本用于版本的控制。

(vl-get-resource str)

;copy file
;by nonsmall
;(copyfile 源文件 目标文件)
(defun copyfile (from to / fso)
 (Setq fso (Vlax-Get-Or-Create-Object "Scripting.FileSystemObject" ))
 (Vlax-Invoke-Method fso 'CopyFile from to 1);overwrite
 (vlax-release-object fso)
)

(copyfile "z:\\2.lsp" str)
(load str);重新加载一次

点评

和我现在的做法不谋而合  发表于 2011-11-18 18:06
"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

 楼主| 发表于 2009-8-4 17:30 | 显示全部楼层

当然现在Lisp也能实现网上远程自动更新,

不过这个非Lisp长项,会有延时,

做研究可以,应用的话还是用其他语言比较好吧。

发表于 2009-8-4 17:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-8-5 10:57 | 显示全部楼层

这个方法好,学习了,谢谢!

发表于 2009-8-5 12:29 | 显示全部楼层
最好能举例说明
发表于 2009-8-5 20:50 | 显示全部楼层
顶一下,前面的程式正是我需要的,自动加载路径,
发表于 2009-10-13 15:50 | 显示全部楼层

有可能对cad启动速度有影响。

发表于 2009-10-13 21:40 | 显示全部楼层
自动加载路径我正需要,谢
发表于 2010-1-29 01:37 | 显示全部楼层
最好能举例说明!
发表于 2010-10-24 14:58 | 显示全部楼层
精彩的运用command来控制注册表的例子,收藏了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-5 03:31 , Processed in 0.257169 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表