正在加载随机问答...

实现开机延迟启动后台程序/开机隐藏启动软件

石湘平
留言 4精选 4

阿虚老师好!
请问有什么方法将开机自启动的后台程序延迟启动,比如向日葵的开机启动的后台程序,(是后台程序,普通的程序我会在计划事件里设置),要后台运行的原因是不想程序的界面显示在桌面上,而后台程序只在系统托盘显示一个小图标。
谢谢您了!
08-17 09:19:25 实现开机延迟启动后台程序/开机隐藏启动软件/开机启动隐藏软件界面

阿虚同学作者


--上述网页内容备份如下--

自定义vbs脚本实现开机后延时启动指定程序的方法

概述网址:yii666.com文章来源地址:https://www.yii666.com/blog/94792.html

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

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

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脚本开机运行就可以了。赶紧体验一下快速开机,很酷的!!!

一些问题和解决方法文章来源地址https://www.yii666.com/blog/94792.html网址:yii666.com<

  不过在这个过程中,我个人遇到了一个问题:我电脑上的杀毒软件是金山毒霸,如果用以上方法启动时,启动金山毒霸时还是会弹出金三毒霸的主界面,我又有点不爽(原谅我吧).我只是希望金山毒霸能自己启动后安静地呆在系统托盘里。

  怎么办呢?

  恰巧我用msconfig查看金山毒霸启动项时,发现它启动的命令不只是程序位置,在其后面还有一个参数 -autorun。顿时懂了,原来金山毒霸的运行程序利用 –autorun这个参数来实现开机启动时不出现主界面而只是托盘化。

  但是Run函数不能给启动的程序传递参数,这个又怎么办呢?

  这时我想到了"快捷方式"这个东西,当你为一个exe文件创建快捷方式时,右键-》属性弹出的属性框中用"快捷方式"选项卡中有一项"目标",其对应的就是目标文件的位置,你可以在这个地方时传参数。文章地址https://www.yii666.com/blog/94792.html

  以我的金山毒霸为例,其目标位置是:"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函数的第一个参数改为快捷方式的位置,这样就可以间接地传递参数了。

08-18 21:52:55

石湘平
留言 4精选 4

感谢阿虚老师的解答,我慢慢研究一下吧。
08-18 23:13:24

石湘平
留言 4精选 4

阿虚老师好:
上期向您请教了开机延迟启动程序并自动最小化到托盘区的问题,我编写了代码:

Dim delayer
Set delayer = CreateObject("WScript.Shell")
WScript.sleep 120000
delayer.Run "C:\Users\Administrator\Desktop\SunloginClient" -autorun, 0, FALSE
Set delayer = Nothing
WScript.quit

但启动时提示
"行:4
字符:1
错误:类型不匹配:'[string:'C:\Users\Administrat'']'
代码800A000D"

请问是哪里错了吗?
08-21 10:36:24

阿虚同学作者

1. 脚本你就根本没好好按教程的来写,自己看看别人路径那里是怎么写的:https://www.yii666.com/blog/94792.html

路径要包括在双引号内

2.没必要你那样弄,自己右键快捷方式 » 属性,运行方式改为最小化就完了
08-22 21:11:30

石湘平
留言 4精选 4

除了编写的这个vbs文件启动失败,还有就是我的向日葵程序是C盘默认安装路径,放了一个快捷方式在桌面,按教程把快捷方式里的目标后面加了-autorun,但是我点击运行这个快捷方式时,程序也是启动显示主界面在屏幕上,而不是自动缩小到托盘区,请问是不是也不正确。
08-21 12:08:17

石湘平
留言 4精选 4

阿虚老师好!右键快捷方式 » 属性,运行方式改为最小化这个方法我试过,点击运行仍是打开了主界面在桌面上,并没有缩小。
阿虚同学1. 脚本你就根本没好好按教程的来写,自己看看别人路径那里是怎么写的:https://www.yii666.com/blog/94792.html

路径要包括在双引号内

2.没必要你那样弄,自己右键快捷方式 » 属性,运行方式改为最小化就完了
08-22 21:16:53


阿虚同学作者

你可以用以下VBS脚本实现任意软件启动后最小化(在exe文件所在目录创建VBS脚本,然后把VBS脚本创建快捷方式):

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c start A.exe",vbhide
wscript.sleep 2000
ws.sendkeys "% "
WScript.Sleep 100
ws.SendKeys "n"
石湘平阿虚老师好!右键快捷方式 » 属性,运行方式改为最小化这个方法我试过,点击运行仍是打开了主界面在桌面上,并没有缩小。
08-22 22:17:44

石湘平
留言 4精选 4

太感谢阿虚老师了!
08-22 22:20:11

石湘平
留言 4精选 4

阿虚,我又双叒叕来提旧问题了:
下列两个都能延迟启动程序,但都不能自动关闭启动后的主界面,仍要手工关闭,上网查询了几天,都查不到还有什么好方法,请帮忙赐教!
谢谢!

vbs代码一:
Dim delayerSet delayer = CreateObject("WScript.Shell")
WScript.sleep 120000
delayer.Run "C:\Users\Administrator\Desktop\SunloginClient", 0, FALSE
Set delayer = Nothing
WScript.quit


vbs代码二:
Set Wshshell = Wscript.CreateObject("Wscript.Shell")
wsh.run "cmd /c start A.exe",vbhide
wscript.sleep 2000wsh.sendkeys "% "
WScript.Sleep 100
wsh.SendKeys "n"
08-26 21:48:56

阿虚同学作者

搞不懂你想干嘛,我之前给出的脚本,运行之后并不会残留vbs运行窗口。最小化运行软件功能也实现了。
如果你用之前的脚本并不能最小化软件窗口,那是因为你要运行的软件并不支持快捷键 Alt+空格+N来最小化窗口,那可以直接改为用VBS调用系统显示桌面方法来解决
08-26 22:11:04


阿虚同学作者

wscript.sleep 后模拟键盘操作部分的代码改为:
Dim objSHA
Set objSHA = CreateObject("Shell.Application")
objSHA.ToggleDesktop
Set objSHA = Nothing

自己换一个双击就能运行的程序就知道是不是代码的问题了
08-26 22:18:11

石湘平
留言 4精选 4

太感谢阿虚老师了!我立马操作使用!
08-26 22:19:39

石湘平
留言 4精选 4

还是不行,还是没有隐藏主界面。(¯∇\)还是只能启动,没有自动隐藏!
08-26 22:31:23

阿虚同学作者

最万无一失的办法,找到你要运行的程序的主程序(根据快捷方式地址来找),把VBS脚本放到主程序同一目录,然后将VBS里面示例代码中的Dism.exe改为你要运行的主程序名称,最后给这个VBS创建快捷方式来运行
08-26 22:42:13

石湘平
留言 4精选 4

我就是把这个脚本放到主程序同一目录,也把Dism.exe改成主程序的名,不改的话,连程序都启动不了,但就是启动后还显示主界面,主界面不自动隐藏,而这个软件自身的设置项里设为开机启动的话,开机后是不显示主界面的,只在托盘区里显示一个图片证明在后台运行。
08-26 22:48:11

阿虚同学作者

可能是因为你的主程序启动太慢了,自己增大延时 wscript.sleep 2000,代码里面给的是2秒,自己换一个双击就能运行的程序就知道是不是代码的问题了
08-26 22:49:36

石湘平
留言 4精选 4

抱歉,我把启动时间从2改到20再改到200到200000,每次都试一下,但还是启动了程序,没有隐藏界面。
08-26 23:02:14

阿虚同学
留言 23精选 20

那就自己排查是不是你电脑系统不支持VBS显示桌面的代码:https://jingyan.baidu.com/article/e8cdb32b0912dc37052badde.html

实在不行用我之前就介绍过的 keymousego 自动化程序录制一个自动启动软件之后最小化的动作也行:https://mp.weixin.qq.com/s/0HDLOzfRtPrethsZm3Xtjw  或者用AHK写一个简单的启动软件在延时按快捷键最小化窗口的脚本也不难
08-26 23:28:09

石湘平
留言 4精选 4

感谢回复,您给的链接中的代码与阿虚给的代码是一模一样的,是支持显示桌面,但不能把延迟启动的向日葵主界面隐藏,是不是还要加写一行代码,是关于先延迟启动程序后,再延迟启动显示桌面的命令代码?谢谢!
08-26 23:40:18

阿虚同学
留言 23精选 20

自己去储物间4-1栏让chatgpt给你解释一下每一行代码的作用吧,wscript.sleep 就是一行单纯的延时函数,要延时启动软件则应该加到启动软件的代码之前,但软件启动也需要时间,所以需要在执行最小化命令的前延时1-2秒
08-26 23:46:41

石湘平
留言 4精选 4

再次感谢,刚去看了您推荐的"自动化程序录制一个自动启动软件"文章,确实是一个方法,但我想,如果能用简单代码解决的时候,就尽量从简,实在不行,再用自动软件吧。
08-26 23:47:14

石湘平
留言 4精选 4

我在阿虚给的代码基础,加上我的思路-"程序启动后再加一条延迟启动"显示桌面"的命令",成功实现把主界面缩小到任务栏里,但离我的初衷"关闭主界面,只在后台运行"(可在托盘区显示)仍未达成,还望阿虚有空帮忙研究一下,谢谢啦!
08-27 00:12:13

砺心
留言 23精选 20

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c start Dism.exe",vbhide
wscript.sleep 5000
ws.SendKeys "%{F4}"
08-27 10:39:30

石湘平
留言 4精选 4

还真巧,我正在试这个方法,稍后向您汇报
08-27 10:40:49

石湘平
留言 4精选 4

抱歉,反复试验多次,修改多次,均无效。
08-27 11:13:26

阿虚同学作者

那就直接用VBS关闭指定名称窗口:https://pastebin.com/UcmXPr3a
  1. Set ws = CreateObject("Wscript.Shell")
  2. ws.run "cmd /c start SunloginClient.exe",vbhide
  3. wscript.sleep 3000
  4. ws.Run "taskkill /fi ""windowtitle eq 向日葵远程控制"""
08-27 15:22:21

石湘平
留言 4精选 4

感谢阿虚老师无数次耐心回复解答,我一直不停在反复尝试,经过用其他程序来试,发现您的几个代码对其他软件都有效,比如说用在淘宝的"阿里旺旺"程序下,可以做到我想要的结果,可以启动程序后自动关闭窗口,只在后台运行。但在这个远程办公软件"向日葵"程序下,就全都不起作用,我也百思不得其解。
08-27 16:07:10

阿虚同学
留言 23精选 20

最后给你的代码就是实测的向日葵远程

无法运行大概率是你自己没注意编码的问题,自己把VBS文件另存为编码从UTF8改为ANSI
08-27 18:45:03

石湘平
留言 4精选 4

特别感谢阿虚老师,最后给我的代码确实是有效(其实我一直是存为ANSI,这点还是懂的,经过反复测试,直到我把延迟时间慢慢改大,由3000改到10000后,成功了),解决了我这段时间日思夜想的苦恼。
08-27 20:48:21

阿虚同学作者

解决了就好,这样看来是估计是由于你开机程序比较多,同时运行时向日葵远程这个程序排在了比较后面启动导致的
08-28 22:19:02

石湘平
留言 4精选 40

感谢阿虚老师不厌其烦的帮助和支持!🙏🙏🙏
08-28 22:28:30