延迟启动应用程序的方法

   Updated: 2016-10-12 22:22       延迟启动应用程序的方法无评论

这里以延迟启动版本为 V2016.04.28 及之前的 「科脉-通讯助手」 程序为例。

测试环境:Windows XP+SQL 2000 以及 Windows 2012 64 位+SQL 2005 64 位

先说一下 「科脉-通讯助手」 程序

目前的 「科脉-通讯助手」 程序(版本为 V2016.04.28 及之前)其实是通过其更新程序(Upgrade.exe)来启动的。勾选 「随开机启动」 后,开机进入桌面时其更新程序(Upgrade.exe)启动必定报错退出,最后导致 「科脉-通讯助手」 程序无法启动。

KMMicroMsgAssistant_StartUP

先禁止助手更新程序自动启动,然后手动将 「科脉-通讯助手」 程序的快捷方式放到系统启动目录里,开机是能正常启动助手的(Windows XP 以及 Windows 2012 64 位下测试通过),但这样就不能自动检测更新。所以我们首先将助手更新程序禁用自启动(「科脉-通讯助手」 程序取消勾选 「随开机启动」+上图 Upgrade.exe 取消勾选),然后将助手更新程序做延迟启动处理。

这里只是作一个程序延迟启动方法的探讨,项目实施的时候尽量使用软件厂家程序或者等待软件厂家的更新和优化。

延迟启动应用程序的方法

下面以版本为 V2016.04.28 及之前的 「科脉-通讯助手」 为例。

方法 1:批处理方式

文本文件里写好启动代码,将这个文件命名为 「KMMicroMsgAssistant.bat」 批处理文件,并将此文件放在 「科脉-通讯助手」 的安装目录下,新建快捷方式将其放到系统启动目录

批处理代码如下:

@echo off
if "%1" == "h" goto begin 
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&exit 
:begin
ping 127.0.0.1 -n 20>nul 
start "" "Upgrade.exe"
exit

说明:这里利用 ping 来延迟,20 表示 ping 20 次(大概 20 秒)

不完美之处:系统启动运行此批处理文件时,会有一个黑框闪一下。而且放到系统启动目录时安全软件会有 「风险提示」。

方法 2:VBS 方式

文本文件里写好启动代码,将这个文件命名为 「KMMicroMsgAssistant.vbs」VBS 文件,并将此文件放在 「科脉-通讯助手」 的安装目录下,新建快捷方式将其放到系统启动目录

VBS 代码如下:

Dim delayer
Set delayer = CreateObject("WScript.Shell")
WScript.sleep 20000
delayer.Run "Upgrade.exe", 0, FALSE
Set delayer = Nothing
WScript.quit

说明:WScript.sleep 语句后面的 20000 表示延迟时间,单位毫秒

不完美之处:系统启动运行此 VBS 文件时,不会有一个黑框闪一下了。但放到系统启动目录时安全软件仍然会有 「风险提示」。

参考链接

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注