VBS脚本完美实现开机延时启动
这两天新买了电脑,安装了一大堆驱动程序之后,发现启动速度太慢了,开机之后鼠标要呆滞好久才能有反应。于是一时心血来潮决定折腾一下,想把那些驱动程序延时启动,这样就可以让windows更快启动了。查阅网上不少资料,觉得比较好就是用脚本vbs和bat去实现。
参考网址有:
http://tsky.cc/post/the-program-delayed-start.html
http://blog.csdn.net/fastong/article/details/2145731
http://hi.baidu.com/iscriptdada/item/789c41c23e5be143bcef69e6
http://ishare.iask.sina.com.cn/f/24130225.html?retcode=0
对比bat和vbs实现,个人觉得还是vbs实现好点,因为bat脚本运行时还是会弹出一个控制台窗口(虽然可以做到一闪而过那种,但是我还是不爽,可能是自己太苛刻了)。用vbs可以完美实现后台延时启动程序。下面言归正传,说点实在的, 我下面只介绍vbs写法,bat与之大同小异,需要的网友可以参考上面的链接。
Vbs内容实例:
Dim delayer
Set delayer = CreateObject("WScript.Shell")
WScript.sleep 8000
delayer.Run """C:\Program Files(x86)\Kingsoft\Klive\Klive.exe""", 0, FALSE
Set delayer = Nothing
WScript.quit
语句分析:
红色标记的语句是做一些变量声明、初始化和善后工作的。
黑色标记语句:“WScript.sleep 8000”;其中8000标记延时的时间,以毫秒为单位8000表示延时8秒;
黑色标记语句:delayer.Run"""C:\Program Files (x86)\Kingsoft\Klive\Klive.exe""",0, FALSE;
这个语句的关键是Run函数,其MSDN链接地址是:http://msdn.microsoft.com/zh-cn/library/d5fk67ky%28en-us,VS.85%29.aspx
Run函数有三个参数:
第一个参数:是启动程序的位置,特别注意:如果位置中有空格的话,需要像上面那样用三个双引号。第二个参数:可用值是0~10这11个数字,每个数字的意义如下:第三个参数是表示这个脚本是等待还是继续执行,如果设为了true,脚本就会等待调用的程序退出后再向后执行。0 隐藏一个窗口并激活另一个窗口。
1 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。第一次显示该窗口时,应用程序应指定此标志。
2 激活窗口并将其显示为最小化窗口。
3 激活窗口并将其显示为最大化窗口。
4 按最近的窗口大小和位置显示窗口。活动窗口保持活动状态。
5 激活窗口并按当前的大小和位置显示它。
6 最小化指定的窗口,并按照 Z 顺序激活下一个顶部窗口。
7 将窗口显示为最小化窗口。活动窗口保持活动状态。
8 将窗口显示为当前状态。活动窗口保持活动状态。
9 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。还原最小化窗口时,应用程序应指定此标志。
10 根据启动应用程序的程序状态来设置显示状态。
把自定义的运行代码写入一个.vbs文件,将其快捷方式加入启动文件夹中,这样就可以在开机时后台实现延时启动程序了。
不过在这个过程中,我个人遇到了一个问题:我电脑上的杀毒软件是金山毒霸,如果用以上方法启动时,启动金山毒霸时还是会弹出金三毒霸的主界面,我又有点不爽(原谅我吧).我只是希望金山毒霸能自己启动后安静地呆在系统托盘里。
怎么办呢?
恰巧我用msconfig查看金山毒霸启动项时,发现它启动的命令不只是程序位置,在其后面还有一个参数 -autorun。顿时懂了,原来金山毒霸的运行程序利用 –autorun这个参数来实现开机启动时不出现主界面而只是托盘化。
但是Run函数不能给启动的程序传递参数,这个又怎么办呢?
这时我想到了”快捷方式”这个东西,当你为一个exe文件创建快捷方式时,右键-》属性弹出的属性框中用”快捷方式”选项卡中有一项”目标”,其对应的就是目标文件的位置,你可以在这个地方时传参数。
以我的金山毒霸为例,其目标位置是:"D:\Program Files(x86)\kingsoft\kingsoft antivirus\kxetray.exe”,
其快捷方式属性中的目标一项中对应值也就是:"D:\Program Files(x86)\kingsoft\kingsoft antivirus\kxetray.exe”。
给其传递参数将目标这一项改为:"D:\Program Files(x86)\kingsoft\kingsoft antivirus\kxetray.exe” –autorun。
然后将vbs中Run函数的第一个参数改为快捷方式的位置,这样就可以间接地传递参数了。
全文完,如果网友还有其他更帅的方法,一起分享分享吧!
邮箱:job.zhanghui@qq.com