Foxtable(狐表)用户栏目专家坐堂 → ftp升级后如何才能自动重新打开项目


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

主题:ftp升级后如何才能自动重新打开项目

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


加好友 发短信
等级:八尾狐 帖子:1911 积分:17026 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/8/4 17:52:00 [只看该作者]

网上查下建立了一个updatebat.vbs的文件,内容如下:
Se t ws = CreateObject("Wscript.Shell") 
ws.run "cmd /c update.bat",vbhide 

这个文件要放在哪里,是升级时自动再建可以吗?
  Dim Proc As New Process '定义一个新的Process
    Proc.File = updatebat.vbs  '指定要打开的文件
    Proc.Verb = "Open" '指定动作
    Proc.Start()
    proc.WaitForExit
还有bat文件可以直接用记事本写好存在attachment下直接调用吗?

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


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

用这个方法。

 

【如果用这句代码 Syscmd.Project.Update 都是会检测update.txt的日期才升级的。当然,你可以人为的修改update.txt的日期实现你需要的升级。】

 

比如,你update.txt的内容是 2017-07-21 00:00:00|2017-06-12

 

你项目的版本号是 2017-06-12、上次升级日期是2017-07-21

 

如果你需要update2.zip升级,把update.txt修改,改一个大的日期,如 2017-07-21 18:00:00|2017-06-13

 

如果你需要update1.zip升级,就改成 2017-07-22 00:00:00|2017-06-12


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


加好友 发短信
等级:八尾狐 帖子:1911 积分:17026 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/8/4 19:32:00 [只看该作者]

If ftp.Download("\Update\Update1.Zip","D:\UpdateTemporary\Update1.Zip",True) = True Then '如果下载程序文件成功
    UpdatePath = "D:\UpdateTemporary"
    RemoteUpdate = False
    
    '--将update日期文件加2天
    Dim s As String = FileSys.ReadAllText(UpdatePath & "\Update.txt")  '读取文件
    Dim d As String() = s.split("|")
    Dim d1 As Date = CDate(d(0))
    Dim d2 As String = d(1)
    d1 = d1.AddDays(2)
    FileSys.WriteAllText(UpdatePath & "\Update.txt",d1 & "|" & d2 , False)  '重新写入文件
  msgbox(11)
    If Syscmd.Project.Update(False,False) = True Then '发现新版本时不提示用户,因为前面已提示过
  msgbox(12)
        Application.restart  '重新启动
    End If
End If

能显示11却没有显示22, 说明没有用唉

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/8/4 21:30:00 [只看该作者]

测试没有问题呀。

就是这个代码没有做版本判断,就会不停的加2天,然后升级重启

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


加好友 发短信
等级:八尾狐 帖子:1911 积分:17026 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/8/4 21:51:00 [只看该作者]

这个是手工点击升级用的,启动项目时才用有日期判断的,关键是我这里测试为什么不行啊!!!!只执行到显示了msgbox(11)就什么都没有了,也没错误提示

用批处理的代码如下:
'----建立批处理文件----------------
Dim s As String = Path & "\update.bat"
If FileSys.FileExists(s) Then
    FileSys.DeleteFile(s)
End If
FileSys.WriteAllText(s,"@echo off" & vbcrlf,True,Encoding.Default)  '参数true表示不覆盖
FileSys.WriteAllText(s,"taskkill /f /im foxtable.exe" & vbcrlf,True,Encoding.Default)
FileSys.WriteAllText(s,"taskkill /f /im newsource.exe" & vbcrlf,True,Encoding.Default)
FileSys.WriteAllText(s,"@cls" & vbcrlf,True,Encoding.Default) '清除屏幕.清除删除 foxtable.exe 进程后屏幕反馈的信息.
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,"xcopy /s /e /q /y " & temp1 & "\*.* " & upPath & vbcrlf,True,Encoding.Default) '复制升级文件
FileSys.WriteAllText(s,"@cls" & vbcrlf,True,Encoding.Default) '清除屏幕.清除升级文件后屏幕反馈的信息.
FileSys.WriteAllText(s,"start " & ProjectPath & "..\" & ename & vbcrlf,True,Encoding.Default) '重启
FileSys.WriteAllText(s,"rd /s /q " & temp1 & vbcrlf,True,Encoding.Default) '删除临时文件夹

'---建立vbs文件---------
'Dim s2 As String = Path & "\upbat.vbs"
'If FileSys.FileExists(s2) Then
    'FileSys.DeleteFile(s2)
'End If
'FileSys.WriteAllText(s2,"S et ws = CreateObject(""Wscript.Shell"")" & vbcrlf,True,Encoding.Default)  '参数true表示不覆盖
'FileSys.WriteAllText(s2,"ws.run ""cmd /c update.bat"",vbhide" & vbcrlf,True,Encoding.Default)

Dim Proc As New Process '定义一个新的Process
Proc.File = s  '指定要打开的文件  
Proc.Verb = "Open" '指定动作
Proc.Start()
proc.WaitForExit

上面红色处直接用批处理文件打开就可以正常升级,但是就出弹出一个讨厌的cmd的命令执行窗口,  
如果改成Proc.File = s2  这样就不成功,用vbs文件调用bat要怎么弄才行


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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/8/4 22:34:00 [只看该作者]

Dim Proc As New Process '定义一个新的Process
proc.StartInfo.FileName = "wscript.exe"
proc.StartInfo.Arguments = s2
proc.StartInfo.WorkingDirectory = Path
proc.StartInfo.UseShellExecute = False
Proc.Start()
proc.Close()


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


加好友 发短信
等级:八尾狐 帖子:1911 积分:17026 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/8/4 22:54:00 [只看该作者]

谢谢有点蓝,总算解决了这个问题,可以了.这种通过vbs调用bat的情况杀毒软件是不是就不会拦截?

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/8/4 23:11:00 [只看该作者]

这个要问杀毒软件,它高兴就不杀,不高兴就杀。没有理由可言

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


加好友 发短信
等级:八尾狐 帖子:1911 积分:17026 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/8/21 11:31:00 [只看该作者]


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

XP的系统升级时会出现这个?
还有这次新版升级用这种方式结果全部都不能用,要不提示配置文件失效,要不就是被杀毒软件拦截,什么都没有提示,只能五六十台机重新安装,用户网管都烦死了.


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


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

尽量不要动态生成bat、vbs文件,这样很容易被杀毒软件查杀的,没办法。

 

你用foxtable本来的升级功能,不行么?这样比较保险。

 

 


 回到顶部
总数 24 上一页 1 2 3 下一页