用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 分钟检查一次他们是否在工作:毕竟,有没有脚本,您都知道该问题的答案。

(0)

相关推荐

  • 用vbs实现重新启动 Internet Explorer

    问: 您好,脚本专家!如果未运行其他实例,如何重新启动 Internet Explorer? -- MT 答: 您好,MT.多谢您的问题.您知道,如今每个人都在挑剔可怜的 Internet Explorer 的毛病(尽管大多数 Windows 用户仍在使用 Internet Explorer).但现在有人提出了一个问题,他想确保 Internet Explorer 始终正常运行.看见了吧,Internet Explorer:还有人喜欢你! 尽管我们本来要为 Internet Explorer 而

  • vbs之使用Internet Explorer 屏蔽密码

    复制代码 代码如下: Set objExplorer = WScript.CreateObject _      ("InternetExplorer.Application", "IE_")  objExplorer.Navigate "file:///c:\scripts\password.htm"     objExplorer.Visible = 1               objExplorer.ToolBar = 0  objEx

  • 用vbs返回 Internet Explorer 的下载控件和 Applet 的列表

    问: 嗨,Scripting Guy!要找出已为 Internet Explorer 下载了哪些程序,有没有简便的方法(这些项目在文件夹 C:\Windows\Downloaded Program Files 中)?我可以使用一个脚本获得可执行文件名和依存文件,但是我想获得它们显示在文件夹中的文件名. -- AC 答: 您好,AC.当您下载了 ActiveX 控件或 Java 小程序时,这些项目通常会放置在"Downloaded Program"文件夹中.您可以在 Windows 资源

  • 用vbs更改 Internet Explorer 的标题栏

    问: 您好,脚本专家!最近我注册了新的 Internet 服务,现在每次我启动 Internet Explorer 时窗口标题显示 Internet Explorer 由 Fabrikam.com 提供.如何更改 Internet Explorer 的标题栏? -- AD 答: 您好,AD.您知道,您的问题让脚本专家在道德和伦理方面进退两难.在我们收到您的电子邮件的同时,我们收到了另一封电子邮件,其内容如下: "您好,脚本专家!我知道许多公司配置了 Internet Explorer,从而其用户

  • 用vbs检测Internet Explorer 中是否启用了 ActiveX

    问: 您好,脚本专家!如何知道 Internet Explorer 中是否启用了 ActiveX? -- JV 答: 您好,JV.您一定要问这个问题,是吗?实际上,这并不是一个特别难回答的问题,只是有点复杂.不过,那与配置 Internet Explorer 的方式紧密相关,而与通过编写一个脚本来检索此信息关系不大. 首先,Internet Explorer 没有管理对象模型:相反,我们能够通过编程的方式检索 Internet Explorer 设置和属性值的唯一方法就是通过编写一个脚本来从注册

  • IE autocomplete internet explorer's autocomplete

    IE autocomplete internet explorer's autocomplete Frequently people are confused by the various dropdown quick-complete boxes in IE.  Most people lump them all under the term "AutoComplete."  There are actually several features in play, and today

  • ibm官方资料把应用程序从 Internet Explorer 迁移到 Mozilla第1/2页

    Netscape 最初开发 Mozilla 浏览器的时候,明智地决定支持 W3C 标准.因此,Mozilla 和 Netscape Navigator 4.x 以及 Microsoft Internet Explorer 遗留代码不完全向后兼容,比如后面将提到 Mozilla 不支持 <layer>.Internet Explorer 4 这些在 W3C 标准的概念出现之前建立的浏览器继承了很多古怪之处.本文中将讨论 Mozilla 的特殊模式,它为 Internet Explorer 和其他

  • Internet Explorer 11 浏览器介绍:别叫我IE

    在上个星期,微软随Windows 8.1正式推出了Internet Explorer 11的第一次预览版.这样,关于这款备受争议的web浏览器泄露版本的各种传闻也该休息了.我们现在已经知道一些关于Internet Explorer 11的重要的细节,包括支持WebGL ,prefetch(译者注:预读取,比如上传文件的预览啥的,不知道翻译的对不对),prerender(预呈现), flexbox,mutation observers和其他web标准,也许在IE11中更有趣的是,它是不是IE. 长

  • 开发 Internet Explorer 右键功能表(ContextMenu)

    参考 MSDN Library[Adding Entries to the Standard Context Menu]开发 ContextMenu 1. IE 额外的 ContextMenu 是透过註册机码 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt 来建立 2. 所以只要在该位置下新增一个 Key 值,例如:新增[Make 0rz]则 IE 中按下右键就会出现相同名称的功能 3. 如果我们想要在该功能上可以使用

  • 小心!Internet Explorer新漏洞

    安全机构Secunia有新的消息有关微软的Internet Explorer,Secunia指出Internet Explorer新的问题已经呈现出来,而且所有的这些都是非常的严重的,并且所有的这些潜在的问题都将会对Internet Explorer的使用者造成重大的破坏. 第一个问题涉及到IE未能对从Internet上传送到本地的一些项目进行效验.IE未能对图像或者其他媒体所隐含的HTML编码进行效验,这样会造成站点能够将HTML编码植入到使用者的系统中,随后可以让这些HTML编码在本地被执行

随机推荐