Foxtable(狐表)用户栏目专家坐堂 → 自动升级的代码如何不要弹出CMD窗口


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

主题:自动升级的代码如何不要弹出CMD窗口

帅哥,在线噢!
HappyFt
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1926 积分:17385 威望:0 精华:0 注册:2014/7/29 19:09:00
自动升级的代码如何不要弹出CMD窗口  发帖心情 Post By:2015/8/4 20:37:00 [显示全部帖子]

下面是打开项目时自动升级的一段代码,但总是会弹出一个CMD的Dos命令窗口,要如何才能不弹出,只是在前面显示一个“---正在升级---”的对话框,完成后自动打开项目就行

 

代码传不上来,只好放在一个txt文件中了。


 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:自动升级.txt

但总不成功,应该怎么办?

 

谢谢!


 回到顶部
帅哥,在线噢!
HappyFt
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1926 积分:17385 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2015/8/5 19:25:00 [显示全部帖子]

 请问这句shell(s,0)要加在哪个位置?象下面这样吗?还是哪里?

 

。。。。

FileSys.WriteAllText(up_vbs,"ws.run ""cmd /c " & utmp & "\Update.bat" & """,vbhide",True,Encoding.Default)

shell(s,0) 

 

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


 

谢谢!


 回到顶部
帅哥,在线噢!
HappyFt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1926 积分:17385 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2015/8/6 11:08:00 [显示全部帖子]

谢谢!这样是不会弹出那个窗口了,但是还有两个问题:

1、怎么才能做到升级时在前面一直显示一个“。。。正在升级的窗口。。。”的窗口,直到升级完成时关闭。

2、下面的代码升级后项目不能自动打开,如何才可以升级完成后自动打开项目呢?

 

'建立升级批处理命令文件--------------------
Dim s As String = utmp & "\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 foxtable.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 " & utmp1 & "\*.* " & upath & vbcrlf,True,Encoding.Default) '复制升级文件,采用upath变量自动判断升级路径
FileSys.WriteAllText(s,"@cls" & vbcrlf,True,Encoding.Default) '清除屏幕.清除升级文件后屏幕反馈的信息.
FileSys.WriteAllText(s,"start " & ProjectPath & "..\" & ename & vbcrlf,True,Encoding.Default) '重启
FileSys.WriteAllText(s,"rd /s /q " & utmp & vbcrlf,True,Encoding.Default) '删除临时文件夹

Dim p As new Process()
p.StartInfo.FileName = "cmd.exe"
p.StartInfo.UseShellExecute = False '关闭Shell的使用
p.StartInfo.RedirectStandardInput = True '重定向标准输入
p.StartInfo.RedirectStandardOutput = True '重定向标准输出
p.StartInfo.RedirectStandardError = True '重定向错误输出
p.StartInfo.CreateNoWindow = True '设置不显示窗口
p.Start()
p.StandardInput.WriteLine(utmp & "\update.bat")

p.WaitForExit


 回到顶部
帅哥,在线噢!
HappyFt
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1926 积分:17385 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2015/8/6 11:29:00 [显示全部帖子]

现在是不会弹出来了,但是项目不能自动重新启动,是哪里的问题呢?

 回到顶部