以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]发布后的程序强行更新最新版  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=50450)

--  作者:lshshlxsh
--  发布时间:2014/5/7 8:29:00
--  [讨论]发布后的程序强行更新最新版
我想实现发布后的程序一旦有更新,登录系统前强行要求先更新软件才可使用软件,如果程序没有更新,则直接登录软件。请问该怎么实现?
--  作者:Bin
--  发布时间:2014/5/7 8:33:00
--  
你的描述自相矛盾


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

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

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


--  作者:狐狸爸爸
--  发布时间: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
--  发布时间: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
--  发布时间:2014/5/7 8:47:00
--  
谢谢狐狸爸爸,请问1、编码下载update.txt文件,解析其中的内容,获取新版本日期.,如何获取 ?
--  作者:Bin
--  发布时间:2014/5/7 8:55:00
--  
下载http://www.foxtable.com/help/topics/1402.htm


--  作者:lshshlxsh
--  发布时间:2014/5/7 8:58:00
--  
谢谢你回到,我想实现有新版就更新,如果是最新版本就直接进入系统,而不是退出
--  作者:狐狸爸爸
--  发布时间: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编辑过]

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

 

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

 

你先好好消化一下。