以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]自动升级1次为何出现3次登录?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=25427)

--  作者:shenyl0211
--  发布时间:2012/11/8 22:59:00
--  [求助]自动升级1次为何出现3次登录?
 

\'下面是用到的全局代码

Public pname As String="项目管理系统" \'项目名称

Public rpath As String="d:\\" & pname & "\\数据文件\\project" \'项目文件运行路径

Public upath As String="\\项目管理系统\\数据文件\\" \'服务器上的项目文件升级路径和备份路径

Public datafile As String = pname & ".zip" \'包含最新升级数据的文件名

 

\'下面是AfterOpenProject事件中自动静默下载升级文件并更新的代码

Dim ftp1 As new ftpclient

ftp1.TimeOut=20000 \'用于设置尝试操作的毫秒数

ftp1.host=IPa \'设置单位ftp服务器地址,IPa为全局代码

ftp1.Account = ftpAccount \'设置ftp登录用户名,ftpAccount为全局代码

ftp1.password = ftppassword \'设置ftp登录密码,ftppassword为全局代码

Dim s1 As Date=ftp1.GetFileDate(upath & datafile) \'获取服务器上升级文件的日期时间

If s1>publishdate Then \'如果较现在版本的日期时间新则下载并升级

    Dim s3 As String = upath & datafile \'服务器上升级文件中包含升级内容的文件

    Dim s4 As String = rpath & "\\" & datafile \'准备保存在客户端的包含升级内容的文件

    ftp1.download(s3,s4,False) \'静默下载并另存

    Dim zip As New zipFile

    zip.Open(s4) \'打开升级文件

    zip.Extractall(rpath) \'全部解压到客户端运行文件夹

    zip.Close() \'关闭升级文件

    FileSys.deleteFile(s4,2,2) \'删除升级文件

    Syscmd.Project.Open(ProjectFile) \'重新打开项目

End If

Forms("用户登录").Open()

 

求助:上述代码怎么看都应该只出现一次登录界面,为何会出现3次呢?


--  作者:狐狸爸爸
--  发布时间:2012/11/9 8:16:00
--  

Public pname As String="项目管理系统" \'项目名称
Public rpath As String="d:\\" & pname & "\\数据文件\\project" \'项目文件运行路径
Public upath As String="\\项目管理系统\\数据文件\\" \'服务器上的项目文件升级路径和备份路径
Public datafile As String = pname & ".zip" \'包含最新升级数据的文件名


\'下面是AfterOpenProject事件中自动静默下载升级文件并更新的代码
Dim ftp1 As new ftpclient
ftp1.TimeOut=20000 \'用于设置尝试操作的毫秒数
ftp1.host=IPa \'设置单位ftp服务器地址,IPa为全局代码
ftp1.Account = ftpAccount \'设置ftp登录用户名,ftpAccount为全局代码
ftp1.password = ftppassword \'设置ftp登录密码,ftppassword为全局代码
Dim s1 As Date=ftp1.GetFileDate(upath & datafile) \'获取服务器上升级文件的日期时间
If s1>publishdate Then \'如果较现在版本的日期时间新则下载并升级
    Dim s3 As String = upath & datafile \'服务器上升级文件中包含升级内容的文件
   Dim s4 As String = rpath & "\\" & datafile \'准备保存在客户端的包含升级内容的文件
    ftp1.download(s3,s4,False) \'静默下载并另存
    Dim zip As New zipFile
    zip.Open(s4) \'打开升级文件
    zip.Extractall(rpath) \'全部解压到客户端运行文件夹
    zip.Close() \'关闭升级文件
    FileSys.deleteFile(s4,2,2) \'删除升级文件
    Syscmd.Project.Open(ProjectFile) \'重新打开项目
Else
    Forms("用户登录").Open()
End If

 


--  作者:shenyl0211
--  发布时间:2012/11/9 8:48:00
--  
狐爸,问题是执行了Syscmd.Project.Open(ProjectFile),就不该继续执行Forms("用户登录").Open()呀。
--  作者:狐狸爸爸
--  发布时间:2012/11/9 8:56:00
--  

为什么不应该执行? 代码是按顺序执行的。

按我说的改吧。