自定义vbs脚本开机启动程序

时间:2024-03-05 19:58:04

概述
  系统开机时,顺带自动启动了不少驱动程序,使得电脑开机后鼠标要呆滞许久。为了加快windows的开机速度,在参考网上不少大牛的资料后,整理出使用vbs脚本利实现开机后延时启动程序的方法

vbs内容示例:
  #1 Dim delayer
  #2 Set delayer = CreateObject("WScript.Shell")
  #3 WScript.sleep 8000
  #4 delayer.Run """C:\Program Files(x86)\Kingsoft\Klive\Klive.exe""", 0, FALSE
  #5 Set delayer = Nothing
  #6 WScript.quit

vbs示例语句分析
  #1#2#5#6语句是做一些变量声明、初始化和善后工作的。
  #3语句:“WScript.sleep 8000”;其中8000标记延时的时间,以毫秒为单位8000表示延时8秒;
  #4语句:delayer.Run"""C:\Program Files (x86)\Kingsoft\Klive\Klive.exe""",0, FALSE;
  这个语句的关键是Run函数[3]有三个参数:
  第一个参数:是启动程序的位置,特别注意:如果位置中有空格的话,需要像上面那样用三个双引号。
  第二个参数:可用值是0~10这11个数字,每个数字的意义如下:
  0 隐藏一个窗口并激活另一个窗口。
  1 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。第一次显示该窗口时,应用程序应指定此标志。
  2 激活窗口并将其显示为最小化窗口。
  3 激活窗口并将其显示为最大化窗口。
  4 按最近的窗口大小和位置显示窗口。活动窗口保持活动状态。
  5 激活窗口并按当前的大小和位置显示它。
  6 最小化指定的窗口,并按照 Z 顺序激活下一个顶部窗口。
  7 将窗口显示为最小化窗口。活动窗口保持活动状态。
  8 将窗口显示为当前状态。活动窗口保持活动状态。
  9 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。还原最小化窗口时,应用程序应指定此标志。
  10 根据启动应用程序的程序状态来设置显示状态。
  第三个参数是表示这个脚本是等待还是继续执行,如果设为了true,脚本就会等待调用的程序退出后再向后执行。如果是FALSE就不等待程序返回就执行下一条语句。


自定义vbs脚本
  通过上面的示例分析[2],相信应该了解了vbs脚本的写法了吧!
  其实很简单,你只需复制方面的示例加入,在中间加入自定义的Sleep时间和Run程序的语句即可。
  顺带提醒计算机知识较弱的网友,可以按下Win+R然后在框中输入msconfig命令,在“启动“选项框中查看到开机启动了哪些程序,将复选框取消,然后再对应的程序名和位置写入延时启动的vbs脚本中。
  编写好vbs脚本文件之后,将其放到“启动”文件夹中让其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函数的第一个参数改为快捷方式的位置,这样就可以间接地传递参数了。