Foxtable(狐表)用户栏目专家坐堂 → [求助]登陆窗口提示升级系统


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

主题:[求助]登陆窗口提示升级系统

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


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
[求助]登陆窗口提示升级系统  发帖心情 Post By:2018/10/18 16:41:00 [只看该作者]

如题

想实现如果系统有最新版本,窗口提示升级

登陆窗口打开后执行下面代码,

操作过程中系统升级后,再打开,提示报错见下图:

 

try

 

 

If FileSys.FileExists(ProjectPath & "update.txt") Then '如果指定的文件存在
    FileSys.DeleteFile(ProjectPath & "update.txt",2,2) '则彻底删除之
End If

 

    'Network.DownloadFile("O:\协同办公系统\在线升级路径\update.txt", ProjectPath &"\update.txt" ,"" ,"" ,False, 100000, True)
    Network.DownloadFile(updatepath & "/update.txt",ProjectPath &"update.txt" ,"" ,"" ,False, 100000, True)
    Dim ud() As String = FileSys.ReadAllText("O:\协同办公系统\在线升级路径\update.txt").Split("|")
    Dim Sdate1 As Date = Cdate(ud(0)) '服务器update.txt发布日期
    Dim Sdate2 As Date = Cdate(ud(1)) '服务器Version.txt发布日期
    Dim Cdate1 As Date = PublishDate '客户端发布日期
    Dim Cdate2 As Date = FileSys.ReadAllText(ProjectPath & "\Bin\Version.txt") '客户端Version.txt发布日期
   
    If Sdate2 > Cdate2 Then '如果服务器程序发布日期大于客户端发布日期(大升级)
        '升级代码
        Syscmd.Project.Update()
    ElseIf Sdate1 > Cdate1 Then '如果服务器版本发布日期大于客户端发布日期(小升级)
        '升级代码
        Syscmd.Project.Update()
    End If

 

catch ex As exception
    msgbox("不用升级")
End try

 


图片点击可在新窗口打开查看此主题相关图片如下:报错.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2018/10/18 16:46:37编辑过]

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


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

如果是互联网升级,看看

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=80202&skin=0

 

如果是局域网(或本机),看看

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=114919&skin=0


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


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

try
    
    Dim str2 As String = FileSys.ReadAllText(UpdatePath & "/update.txt")
    Dim ud() As String = str2.Split("|") '获取文件内容
    
    Dim Sdate1 As Date = Cdate(ud(0)) '服务器update.txt发布日期
    Dim Sdate2 As Date = Cdate(ud(1)) '服务器Version.txt发布日期
    Dim Cdate1 As Date = PublishDate '客户端发布日期
    Dim Cdate2 As Date = FileSys.ReadAllText(ProjectPath & "\Bin\Version.txt") '客户端Version.txt发布日期
    
    If Sdate2 > Cdate2 OrElse Sdate1 > Cdate1 Then
        msgbox("有新版本")
        '静默升级代码 Syscmd.Project.Update(False,False)
    End If
catch ex As exception
    msgbox(ex.message)
    msgbox("下载失败")
End try


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


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)如果是互联网升级,看看?ht...  发帖心情 Post By:2018/10/18 16:55:00 [只看该作者]

大师,用下面代码,升级系统到最新后,重新打开,还是提示1楼 下载失败 窗口关闭后,才能进入登陆窗口

 

 

try
   
    Dim str As String = FileSys.ReadAllText(UpdatePath & "/update.txt")
    Dim ud() As String = str.Split("|") '获取文件内容
   
    Dim Sdate1 As Date = Cdate(ud(0)) '服务器update.txt发布日期
    Dim Sdate2 As Date = Cdate(ud(1)) '服务器Version.txt发布日期
    Dim Cdate1 As Date = PublishDate '客户端发布日期
    Dim Cdate2 As Date = FileSys.ReadAllText(ProjectPath & "\Bin\Version.txt") '客户端Version.txt发布日期
   
    If Sdate2 > Cdate2 OrElse Sdate1 > Cdate1 Then
        msgbox("有新版本")
        '静默升级代码 Syscmd.Project.Update(False,False)
    End If
catch ex As exception
    msgbox(ex.message)
    msgbox("下载失败")
End try

[此贴子已经被作者于2018/10/18 16:58:04编辑过]

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


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

1、弹出msgbox(UpdatePath)看看

 

2、看对应的路径下,有没有文件

 

3、你对应的路径,通过浏览器或者资源管理器,看能否访问


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


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)1、弹出msgbox(UpdatePath)看看&nb...  发帖心情 Post By:2018/10/18 17:18:00 [只看该作者]

路径没问题,里面有3个文件

下面代码不是写在项目事件里,是写在登陆窗口打开后事件里

 

try
   
    Dim str As String = FileSys.ReadAllText(UpdatePath & "/update.txt")
    Dim ud() As String = str.Split("|") '获取文件内容
   
    Dim Sdate1 As Date = Cdate(ud(0)) '服务器update.txt发布日期
    Dim Sdate2 As Date = Cdate(ud(1)) '服务器Version.txt发布日期
    Dim Cdate1 As Date = PublishDate '客户端发布日期
    Dim Cdate2 As Date = FileSys.ReadAllText(ProjectPath & "\Bin\Version.txt") '客户端Version.txt发布日期
   
    If Sdate2 > Cdate2 OrElse Sdate1 > Cdate1 Then
        msgbox("有新版本")
        '静默升级代码
         Syscmd.Project.Update(False,False)
    End If
catch ex As exception
    msgbox(ex.message)
    msgbox("下载失败")
End try

 


图片点击可在新窗口打开查看此主题相关图片如下:路径没问题2.png
图片点击可在新窗口打开查看

 

现在问题是 不断重复出现下图2个窗口:

1、提醒有新版本 窗口不能最前显示

2、确定 有新版本 窗口后,跳出窗口 提醒在线升级成功后,系统直接退出了



图片点击可在新窗口打开查看此主题相关图片如下:1有新版本.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2018/10/18 17:54:44编辑过]

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


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

以下是引用湛江智在2018/10/18 17:18:00的发言:

 

现在问题是 不断重复出现下图2个窗口:

1、提醒有新版本 窗口不能最前显示

2、确定 有新版本 窗口后,跳出窗口 提醒在线升级成功后,系统直接退出了


 

[此贴子已经被作者于2018/10/18 17:54:44编辑过]

 

代码改成

 

    If Sdate2 > Cdate2 OrElse Sdate1 > Cdate1 Then
        MessageBox.Show("提示!", "提示",MessageBoxButtons.Ok,MessageBoxIcon.Warning,0, Windows.forms.MessageBoxOptions.ServiceNotification)
        '静默升级代码
         Syscmd.Project.Update(False,False)

         Application.ReStart
    End If


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


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)以下是引用湛江智在2018/10/18 17:18...  发帖心情 Post By:2018/10/18 18:45:00 [只看该作者]

还是不行,强制自动更新或在计划里提醒更新都行,有这两种直接可用代码嘛? 是局域网系统升级
[此贴子已经被作者于2018/10/18 18:46:58编辑过]

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


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

以下是引用湛江智在2018/10/18 18:45:00的发言:
还是不行,强制自动更新或在计划里提醒更新都行,有这两种直接可用代码嘛? 是局域网系统升级
[此贴子已经被作者于2018/10/18 18:46:58编辑过]

 

没看懂你什么问题。代码肯定是没问题的。

 

如果要测试升级,请发布生成exe以后再测试。


 回到顶部