以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  自定义升级问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97607)

--  作者:fubblyc
--  发布时间:2017/3/15 15:44:00
--  自定义升级问题

 

我用狐友的自动升级代码:

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=38980&authorid=0&page=0&star=1

 上传的文件名字乱码,并且不是指定的文件位置,不知道是哪里弄错了。。。 


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20170315154339.png
图片点击可在新窗口打开查看

 

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

[此贴子已经被作者于2017/3/15 15:45:47编辑过]

--  作者:有点色
--  发布时间:2017/3/15 16:05:00
--  

1、看在你本地生成的zip是否乱码。

 

2、看看 ftp1.utf8 = True \'设置成true或false

 

3、上传路径是这个 ftp1.upload(dpath & datafile,upath & datafile,True)

 

弹出对应的值看看是否正确。

 

 


--  作者:fubblyc
--  发布时间:2017/3/15 16:27:00
--  
恩恩,我换成 把文件夹  ,上传路径 都换成 英文 的就可以了。
--  作者:有点色
--  发布时间:2017/3/15 16:42:00
--  

 如果本地生成的zip没问题,那就应该是你这里的问题

 

 ftp1.utf8 = True \'设置成true或false


--  作者:fubblyc
--  发布时间:2017/3/15 18:08:00
--  

ftp1.utf8 = True \'设置成true或false

 

设置成 false  也可以


--  作者:fubblyc
--  发布时间:2017/3/16 10:13:00
--  

    If publishdate < "2017-03-16 09:38" Then
        Dim zip As New zipFile

        Dim s3 As String = upath & datafile \'服务器上升级文件中包含升级内容的文件
        Dim s4 As String = rpath & "\\" & datafile \'准备保存在客户端的包含升级内容的文件
        If FileSys.DirectoryExists(rpath) = False Then
            FileSys.CreateDirectory(rpath)
        End If
        ftp1.download(s3,s4,False) \'静默下载并另存

        zip.Open(s4) \'打开升级文件
        zip.Extractall(rpath) \'全部解压到客户端运行文件夹
        zip.Close() \'关闭升级文件
        FileSys.deleteFile(s4,2,2) \'删除升级文件

        If filesys.DirectoryExists(npath) = False Then
            filesys.CreateDirectory(npath)
        End If

        ftp1.download(upath & "update.zip",npath & "update.zip",True) \'静默下载并另存,update.zip见下文的"发布上传"
        zip.Open(npath & "update.zip")
        zip.ExtractAll(npath)
        zip.Close()
        FileSys.deleteFile(npath & "update.zip",2,2) \'删除升级文件
        Dim s As String = rpath & "\\update.bat" \'建立升级批命令文件
        If filesys.FileExists(s) Then
            filesys.DeleteFile(s)
        End If
        filesys.WriteAllText(s,"@echo off" & vbcrlf,True,Encoding.Default)
        filesys.WriteAllText(s,"taskkill /f /im 零售经营系统.exe" & vbcrlf,True,Encoding.Default)
        filesys.WriteAllText(s,"echo Wscript.Sleep Wscript.Arguments(0) * 1000>Delay.vbs" & vbcrlf,True,Encoding.Default)
        filesys.WriteAllText(s,"Delay.vbs 3" & vbcrlf,True,Encoding.Default)
        filesys.WriteAllText(s,"del Delay.vbs" & vbcrlf,True,Encoding.Default)
        filesys.WriteAllText(s,"move /y " & npath & "*.* c:\\" & pname & vbcrlf,True,Encoding.Default)
        filesys.WriteAllText(s,"start /c c:\\" & pname & " /max " & ename & vbcrlf,True,Encoding.Default)
        filesys.WriteAllText(s,"del " & s & vbcrlf,True,Encoding.Default)
        Dim Proc As New Process \'定义一个新的Process
        Proc.File = s \'指定要打开的文件
        Proc.Verb = "Open" \'指定动作
        Proc.Start()
        proc.WaitForExit

 

        Proc.File = "c:\\" & pname & "\\" & ename    问题在这里:版本升级后想要自动打开,这样好像不能实现,因为退出来了.....有什么办法可以实现吗?是不是可以用批处理打开文件?怎么做呢。。。
        Proc.Verb = "Open" \'指定动作
        Proc.Start()

    End If   

[此贴子已经被作者于2017/3/16 10:15:02编辑过]

--  作者:有点色
--  发布时间:2017/3/16 10:22:00
--  

 用这句代码打开的

 

filesys.WriteAllText(s,"start /c c:\\" & pname & " /max " & ename & vbcrlf,True,Encoding.Default)

 

  或者你参考这些例子

 

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

 

 

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

 

 或者直接用

 

Application.Restart()

--  作者:fubblyc
--  发布时间:2017/3/16 10:26:00
--  

哦,原来之前的批处理已经有自动打开的代码,奇怪,我的为什么没有自动打开?


--  作者:有点色
--  发布时间:2017/3/16 10:33:00
--  

参考7楼的方法去做,你那个可能不是很正确。

 

或者,屏蔽掉代码 filesys.WriteAllText(s,"del " & s & vbcrlf,True,Encoding.Default),然后看生成的bat批处理是否正确。

[此贴子已经被作者于2017/3/16 12:24:25编辑过]

--  作者:fubblyc
--  发布时间:2017/3/16 11:39:00
--  

恩,我现在测试一下你说的屏蔽那段代码的

之前的代码有个问题,手动重启后,是有打开新版本了,但是只是启动界面,完了之后用户登录窗口没有弹出来,任何窗口都没有出来。进程里有。

 

直接打开 在publish 的exe 文件 没有问题,可以弹出用户登录的窗口。

[此贴子已经被作者于2017/3/16 11:47:11编辑过]