| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1258 人关注过本帖
标题:新做的通用自动更新程序原代码
只看楼主 加入收藏
jjjlan
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2004-11-24
收藏
 问题点数:0 回复次数:0 
新做的通用自动更新程序原代码

你不必为每一个程序写一个更新程序,事先也不必知道你要更新的是什么程序

你所做的只是

1、新老版本的程序必需同名

2、新版本程序和更新程序上传到服务器里的同一个共享目录

3、将以下代码复制到程序的合适位置,更改第一行代码为你的服务器共享目录

CD \\服务器\更新程序所在目录 &&到服务器存放更新程序.EXE文件的目录

IF FDATE(JUSTFNAME(SYS(16,0)))>FDATE(SYS(16,0))

IF FILE("更新程序.EXE")

WAIT "发现新的版本,正在更新中。" WINDOW ;

AT SYSMETRIC(2)/24-6,SYSMETRIC(1)/12-13 NOCLEAR NOWAIT

MAINUP=FULLPATH("更新程序.EXE") &&得到带完整路径的更新程序.EXE

CD JUSTPATH(SYS(16,0)) &&到客户端也就是正运行的程序文件目录

STRTOFILE(JUSTFNAME(SYS(16,0)),"更新文件.TXT") &&生成文本文件

RUN/N &MAINUP&&&&& &&在客户端调用服务器上的更新程序.EXE

QUIT

ENDIF

ENDIF

说明一下我在更新程序中不用DO WHILE或出错处理中RETRY的原因

1、假设张三运行了程序,突然有事要离开,为了不让其他人动把窗口最小化(这种情况很多),这时你上传了新的版本,李四进来又重新运行程序,肯定死循环

2、你的机器在文件夹选项中选择了单击打开项目(我的机器就是这样),你双击程序可能会两次运行程序,如有新版本肯定死循环当然你也可以采取在更新时杀死进程或禁止重复运行程序来解决上述情况

我用50次循环的理由

INKEY(1,"H") 延时1秒,50次加上每次判断程序是否退出总的时间约1分钟,正常情况程序退出根本不需要这么长时间,但是INKEY()实际上是在等待按键时间,如果用户不断点击鼠标或按键,等待时间将大打折扣,为了保险我用了50次循环

搜索更多相关主题的帖子: 代码 自动 
2005-06-18 13:59
快速回复:新做的通用自动更新程序原代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015634 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved