使用VBScript识别浏览器实例(非IE)

时间:2014-01-10 10:44:09

标签: internet-explorer browser vbscript

我正在创建一个应用程序,它打开一个Web浏览器(IE除外)并使用VBScript导航到特定的URL,并且如果已经打开,还会识别浏览器的实例。 浏览器可以是Safari,Chrome,Firefox或Opera。 直到现在我能够打开浏览器并使用VBScript导航到url。这就是我做的 -

特定于IE

Dim ieObj As Object
Set ieObj = CreateObject("InternetExplorer.Application")
ieObj.Visible = True
ieObj.Navigate url

url是浏览器应导航到的地址。

对于其他浏览器 -

Dim objShell
Set objShell = CreateObject("WScript.Shell")
objShell.Run ("""C:\Program Files (x86)\Mozilla Firefox\firefox.exe""") & url
Set objShell = Nothing

在这里,我可以更改应用程序的路径,并且打开正常。(我可以更改它更有意义的代码,这不是问题)。

现在,我已准备好检测IE浏览器实例的机制 -

Dim obj_Shell As Object
Dim obj_window_open As Object
Set obj_Shell = CreateObject("shell.application")

For Each obj_window_open In obj_Shell.Windows
//Logic to achieve functionality
//..End Each Loop

这段代码仅适用于IE和IE。

我们有什么办法可以为firefox和chrome等其他浏览器做同样的事情吗? 由于我几天前就开始学习VBScript,所以非常感谢帮助。

1 个答案:

答案 0 :(得分:1)

如果您只想在系统上的标准浏览器中打开网站,请执行以下操作:

set objwsh = CreateObject("WScript.Shell")
objwsh.Run "http://stackoverflow.com/"

另一方面,这是一个脚本,可以在正在运行的进程中搜索特定的名称(或开头)。

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & ".\root\cimv2")
Set colProcesses = objWMIService.ExecQuery _
   ("Select * from Win32_Process")
For Each objProcess in colProcesses
    for each targetItem in Array("Firefox", "Chrome") ' ...
        if lcase(left(objProcess.Name, len(targetItem))) = _
        lcase(targetItem) then 
            msgbox targetItem & " seems to be running (" & objProcess.Name & ")"
        end if
    next
Next

...基于http://msdn.microsoft.com/en-us/library/aa394599%28v=vs.85%29.aspx

但这对你没有多大帮助,因为e。 G。 Firefox确实没有提供脚本界面。