以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 自动升级不要弹出cmd.exe窗口 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62978) |
||||
-- 作者:HappyFt -- 发布时间:2015/1/11 14:06:00 -- 自动升级不要弹出cmd.exe窗口 用了狐友提供的自动升级的确实好用 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=40763&authorid=0&page=0&star=1 但就是有个问题下面这段代码运行后总会先打开一个Cmd.exe的一个升级窗口,很多用户升级时xp都会拦掉这个文件或提示;部分代码如下文件中
\'Dim up1 As String = utmp & "\\up1.vbs" 网上查了很久有介绍说把批处理保存为一个VBS的文件如上面红色部份就不会弹出Cmd窗口,但总不成功。现在就是想实现在升级时象QQ等那样,前面只是显示一个正在升级的窗口就行,那些批处理都在后台运行不要显示出来,升级完正常打开程序就可以,要怎么才能实现?ft的方式每次升级完还要提示重新启动不能自动打开也不好? 谢谢!
|
||||
-- 作者:有点甜 -- 发布时间:2015/1/11 15:21:00 -- 呃,加参数
shell("d:\\test.bat", 0) |
||||
-- 作者:HappyFt -- 发布时间:2015/1/15 17:55:00 -- 为什么最近写多点文本上传总出错,传不了,只好写在下面的文本文件中了,谢谢!
|
||||
-- 作者:有点甜 -- 发布时间:2015/1/15 18:04:00 -- 不需要创建啊,直接写就是创建和清空了啊
FileSys.WriteAllText(up_vbs,"Set ws = CreateObject(""Wscript.Shell"")" & vbcrlf,False,Encoding.Default) |
||||
-- 作者:HappyFt -- 发布时间:2015/1/15 18:22:00 -- 但第二句如下,总提示出错没有申明updat.bat变量,不知道是哪个引号没对,要怎么写? FileSys.WriteAllText(up_vbs,"ws.run "" & utmp & "\\Update.bat" & "",0",True,Encoding.Default)
要调用utmp这个变量所代表的目录下的update.bat文件。就是把 ws.run "c:\\Update.bat",0 这样的目录C:\\换成变量utmp总是写不对。 [此贴子已经被作者于2015-1-15 18:29:49编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2015/1/15 19:04:00 -- FileSys.WriteAllText(up_vbs,"ws.run """ & utmp & "\\Update.bat" & """,0",True, Encoding.Default) |
||||
-- 作者:HappyFt -- 发布时间:2015/1/15 21:18:00 -- 谢谢,原来是还要加一个双引号,@echo off rd /s /q " & utmp
还有个问题,如果update.bat文件中有参数,运行 FileSys.WriteAllText(up_vbs,"ws.run """ & utmp & "\\Update.bat" & """,0",True, Encoding.Default) 时如何传递给bat文件,bat文件中又要如何接收呢? |
||||
-- 作者:有点甜 -- 发布时间:2015/1/15 21:24:00 -- 呃,bat文件是你生成的,要怎么控制,就在前面控制,无法传递参数的。 |
||||
-- 作者:HappyFt -- 发布时间:2015/1/16 12:44:00 -- \'---通过VBS执行批处理避免弹出CMD窗口
Dim Proc As New Process \'定义一个新的Process 通过上面的代码升级时是可以不显显cmd窗口,但还有个问题,就是每次下载升级包完成后电脑屏幕都会闪烁一下,好象在运行升级代码前项目窗口打开又突然关掉一样。是否要在Proc.Start()前要用什么代码先退出项目才能避免? |
||||
-- 作者:有点甜 -- 发布时间:2015/1/16 14:11:00 -- 呃,没测试过你说的闪烁问题,直接写试试
shell(""" & utmp & "\\Update.bat" & """, 0) |