用vbs实现重新启动 Internet Explorer

2007-03-25 00:00:00 作者:

用vbs实现重新启动 Internet Explorer

问:

您好,脚本专家!如果未运行其他实例,如何重新启动 Internet Explorer?

-- MT

答:

您好,MT。多谢您的问题。您知道,如今每个人都在挑剔可怜的 Internet Explorer 的毛病(尽管大多数 Windows 用户仍在使用 Internet Explorer)。但现在有人提出了一个问题,他想确保 Internet Explorer 始终正常运行。看见了吧,Internet Explorer:还有人喜欢你!

尽管我们本来要为 Internet Explorer 而感到高兴的,但我们不得不承认这个问题使我们有些为难。毕竟,可通过多种不同的方法来解决此问题,这取决于您是需要立即重新启动 Internet Explorer 还是要等一会再启动它。对此问题沉思片刻之后,我们决定按我们通常所采取的办法去做:采用最简单的解决办法,在本示例中,每 60 秒检查一次是否有任何 Internet Explorer 实例正在运行。如果有,则脚本只返回到休眠状态,再等待 60 秒,然后重新检查。如果没有任何运行的 Internet Explorer 实例,则脚本将启动 Internet Explorer 的新副本,然后休眠片刻,再等待 60 秒,之后重新检查。

是的,这有点类似于脚本专家一天的工作。嗯,您知道我们是什么意思吗?不同之处就是每 60 秒即醒来一次以便干点什么。

以下是我们所提供的脚本:

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set objShell = CreateObject("Wscript.Shell")

Do While True

Set colProcesses = objWMIService.ExecQuery _

("Select * from Win32_Process Where Name = 'iexplore.exe'")

If colProcesses.Count = 0 Then

objShell.Run "iexplore.exe"

End If

Wscript.Sleep 60000

Loop

没错:它实质上只是个普通的 WMI 脚本。因此,它首先连接到本地计算机上的 WMI 服务。但是该脚本与其他 WMI 脚本之间存在一个主要的不同之处。通常此时我们会说:“不过,您也可以针对远程计算机运行此脚本”。遗憾的是,这一次并非如此。从技术上讲,您可以针对远程计算机运行该脚本,但您启动的任何 Internet Explorer 实例都将在不可见的窗口中运行(至少在 Windows XP 和 Windows Server 2003 上是这样),因此,您将无法在屏幕上看到它。这是操作系统中内置的一种安全功能:远程启动的进程始终在隐藏窗口中运行。也就是说,该脚本必须在本地计算机上运行。

注意:这个问题有解决办法吗?事实上有解决办法,尽管它要求您本地而不是远程启动进程。有关如何解决该问题的示例,请参阅您好,脚本专家!专栏。

连接到 WMI 服务后,我们就创建一个 WScript.Shell 对象的实例,我们将使用它来生成所有新的 Internet Explorer 实例。(是的,我们本来可以使用 WMI 来实现此目的的,但大多数人都发现使用 Wscript.Shell 运行程序要比使用 WMI 更容易。)接着我们建立一个只要 True 等于 True 时即运行的 Do 循环。(除非哲学上有任何新的进展,否则这就意味着脚本将永远运行下去。要停止该脚本,需要终止脚本进程。如果您正运行在 CScrip 下的命令窗口中,只需按 Ctrl+C 或关闭命令窗口即可实现此操作,非常容易。)

那么此循环执行什么操作?首先,我们使用以下代码来检索当前在计算机上运行的所有名为 iexplore.exe 的进程集合:

Set colProcesses = objWMIService.ExecQuery _

("Select * from Win32_Process Where Name = 'iexplore.exe'")

尽管会失去悬念,但还是要与当前在计算机上运行的所有 Internet Explorer 实例的集合保持一致。然后,我们检查 Count 属性(该属性可告诉我们集合中的项数)的值是否等于 0:

If colProcesses.Count = 0 Then

如果 Count 等于 0,则表示计算机上未运行任何 Internet Explorer 实例。因此,我们使用 Shell 对象和 Run 方法来启动一个全新的实例:

objShell.Run "iexplore.exe"

就是这样。接下来,使用 Sleep 方法将脚本暂停 60 秒(60,000 毫秒)。60 秒之后,脚本继续执行,再次循环并重复该过程,直至永远。如果所需时间间隔不是 60 秒,调整该值即可。例如,下面这行代码将每 30 秒(30,000 毫秒)进行一次检查:

Wscript.Sleep 30000

下面的代码将每 10 分钟(60,000 毫秒/每分钟乘以 10 分钟)运行一次检查:

Wscript.Sleep 600000

不可否认,该代码仅每 10 分钟检查一次 Internet Explorer 是否在工作。对于脚本专家来说,就没有必要再每 10 分钟检查一次他们是否在工作:毕竟,有没有脚本,您都知道该问题的答案。

vbs当计算机重启,用vbs实现重新启动 Internet Explorer相关推荐

  1. 改完计算机名自动重启 vbs,VBS改计算机名,加IP,网关,DNS,无需禁用网卡.重...

    VBS改计算机名,加IP,网关,DNS,无需禁用网卡.重 (2010-05-03 09:46:40) 标签: 诛仙sf网 杂谈 请修改符合您自己的参数. 以下内容保存为 XXX.VBS Dim Num ...

  2. 计算机启动到一半就重新启动怎么办,电脑开机过程中自动重启怎么解决

    有网友反映电脑开机到一半就自动重启了,需要多次重启才成功开机,甚至一直重启,应该怎么解决呢?下面就由学习啦小编跟大家分享具体的处理方法吧,希望对大家有所帮助~ 电脑开机到一半的时候电脑自动重启的处理方 ...

  3. 这是一台家庭计算机重启无效,我买了一台二手计算机,配置还可以,但有时会自动重启机器,这是为什? 爱问知识人...

    在使用电脑过程中,遇到过系统无故自动重启的情况,实际上引起计算机重启的原因有多种,其中硬件方面原因大致有以下几条. 电源是引起系统自动重启的最大嫌疑之一 劣质的电源不能提供足够的电量,当系统中的设备增 ...

  4. 锁定计算机重启会变更ip吗,计算机更改IP不需要重启的方法

    在调试计算机网络时,经常需要更改网卡的IP地址,我们都知道,在Windows 2000/XP下,系统将自动刷新网卡的IP地址,而无需重新启动系统,下文是爱站技术频道小编为大家带来的计算机更改IP不需要 ...

  5. vbs脚本实现搞笑代码vbs实现自动打字祝福(耗子尾汁)

    系列文章分类 C#专栏.VBS专栏.JAVA 专栏.IDEA 专栏 vbs脚本实现搞笑代码&vbs实现自动打字祝福 前言 一.vbs淦对话框 二.vbs淦打油诗 三.vbs淦函数 四.vbs淦 ...

  6. 计算机重启没有用户名,电脑重启之后图标没了怎么办

    关于电脑重启之后没有显示图标的问题,很多网友还不清楚该怎么办,那么下面就由学习啦小编来给你们说说电脑重启之后没有图标的解决方法吧,希望可以帮到你们哦! 电脑重启之后没有图标的解决方法一: 方法一: 在 ...

  7. 计算机重启恢复设置吗,为什么IE的安全设置在设置好以后,重启一下电脑会被恢复成原来的设置...

    换不同的帐号登录系统,故障依然,监视系统进程,意外发现:在IE等窗口自动关闭时,突然出现Dwwin.exe进程,而且不止一个,有时有 10个左右,然后又都突然消失.不要以为是病毒进程,Dwwin.ex ...

  8. 计算机的假桌面,如何删除桌面假Internet Explorer图标

    方法一:用WINDOWS清理助手或者手动杀毒,均可砍掉流氓软件的启动项和服务/驱动. 方法二:注:这个恶意软件还会修改开始菜单上的IE属性,在HKEY_LOCAL_MACHINE\SOFTWARE\C ...

  9. 计算机图标在桌面上未找到,桌面上缺少 Internet Explorer 图标

    症状 Internet Explorer 图标未显示在桌面上. 当你尝试使用"桌面项目"对话框 (Windows XP) 或"桌面图标设置"对话框 (Windo ...

最新文章

  1. javascript对象的几种创建方式
  2. 关于HTML Object中三个Style实例的区别
  3. 关于Java中try-catch-finally-return的执行顺序
  4. 程序员不是神……心态决定一切(转载)
  5. PHP用redis实现多进程队列
  6. 二叉排序树与文件操作的设计与实现_堆排序就这么简单
  7. 网络学习笔记(一):TCP连接的建立与关闭
  8. 面试题(Qt + 函数指针)
  9. 《Elementary Methods in Number Theory》勘误
  10. 电气图纸制图规范及电气图纸的识读方法大全
  11. 数据中心到底是如何建设的?
  12. 关于win10中资源管理器卡顿的问题及解决办法
  13. 【小程序】扫码预览时不显示图片
  14. Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering
  15. 程序员工作年限谜题:大数据为你解析,程序员到底能干到多少岁?
  16. MasterCAM螺旋线的两种画法:螺旋线命令和插件方法
  17. linux 中的rime 输入法 自定义 新世纪五笔输入法
  18. 深入浅出系列1:词向量
  19. CPS1848调节信号质量
  20. 小程序源码放自己服务器上,小程序源码怎么安装到自己服务器?

热门文章

  1. java面试题10 牛客:以下可以正确获取结果集的有
  2. java学习(117):list迭代器和包含方法
  3. linux mysql5.6.27源码安装和错误解决
  4. lambda表达式浅析【C++学习笔记】
  5. coroutine php_PHP 协程实现
  6. 路径规划算法_自动驾驶汽车路径规划算法浅析
  7. 辨析 const指针 和 指向常量的指针
  8. informix如何查询第一条记录
  9. pgd 游戏教程 基地
  10. Hadoop2之NameNode HA详解