谢谢!这样是不会弹出那个窗口了,但是还有两个问题:
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