Foxtable(狐表)用户栏目专家坐堂 → [讨论]发布后的程序强行更新最新版


  共有4825人关注过本帖树形打印复制链接

主题:[讨论]发布后的程序强行更新最新版

帅哥哟,离线,有人找我吗?
lshshlxsh
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:659 积分:7979 威望:0 精华:0 注册:2013/12/11 17:49:00
[讨论]发布后的程序强行更新最新版  发帖心情 Post By:2014/5/7 8:29:00 [只看该作者]

我想实现发布后的程序一旦有更新,登录系统前强行要求先更新软件才可使用软件,如果程序没有更新,则直接登录软件。请问该怎么实现?

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/7 8:33:00 [只看该作者]

你的描述自相矛盾


如果程序没有更新,则直接退出软件  才对吧?

If Syscmd.Project.Update(False,False) = False Then '如果没有升级
     
Syscmd.Project.Exit(False)
End
 If

也就是说Update执行后会返回一个逻辑值,如果升级成功,返回True,否则返回False。


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/5/7 8:39:00 [只看该作者]

1、编码下载update.txt文件,解析其中的内容,获取新版本日期.

 

2、和PublishDate比较:

 

if 从update.txt获取的版本日期 > PublishDate Then

     If Syscmd.Project.Update(False,False) = False Then '如果没有升级
        Syscmd.Project.Exit(False)
    End If

end if


 回到顶部
帅哥哟,离线,有人找我吗?
lshshlxsh
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:659 积分:7979 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2014/5/7 8:41:00 [只看该作者]

我想实现检测到最新的就更新,如果是最新版就不用

 

If Syscmd.Project.Update(False,False) = False Then '如果没有升级  
    Forms("用户登录").Open()
    If _UserName = "" Then
        Syscmd.Project.Exit()
        Return '这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错
    End If
    Forms("主页面").open
Else 
    Forms("升级软件").open()
End If


 这一段我写在AfterOpenProject,现在没起作用

[此贴子已经被作者于2014-5-7 8:45:18编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lshshlxsh
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:659 积分:7979 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2014/5/7 8:47:00 [只看该作者]

谢谢狐狸爸爸,请问1、编码下载update.txt文件,解析其中的内容,获取新版本日期.,如何获取 ?

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/7 8:55:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
lshshlxsh
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:659 积分:7979 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2014/5/7 8:58:00 [只看该作者]

谢谢你回到,我想实现有新版就更新,如果是最新版本就直接进入系统,而不是退出

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/5/7 9:09:00 [只看该作者]

Dim fl As String = projectpath & "abc.txt"
Network.DownloadFile("http://www.foxtable.com/download/update.txt", fl)
Dim v() As String  = FileSys.ReadAllText(fl).Split("|")
Dim dt1
Date.TryParse(v(0),dt1)
If dt1 > publishDate Then
    If Syscmd.Project.Update(False,False) = False Then '如果没有升级成功,或用户中途取消。
        messagebox.show("发现新版本,你必须升级才能启动")
        Syscmd.Project.Exit(False)
    End If
End If

 

[此贴子已经被作者于2014-5-7 9:15:21编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/7 9:10:00 [只看该作者]

以下是引用lshshlxsh在2014-5-7 8:58:00的发言:
谢谢你回到,我想实现有新版就更新,如果是最新版本就直接进入系统,而不是退出

 

呃,强制更新,是这句代码 Syscmd.Project.Update(False,False)

 

你先好好消化一下。


 回到顶部