VBScript使用生成的URL启动Internet Explorer

时间:2014-02-15 19:28:12

标签: internet-explorer vbscript scripting hta

目前我正在学习HTA编程。我有如下要求。

表单中有两个输入框(两者都是必填项)。当我输入值并单击搜索按钮时,将根据输入创建一个URL。应该使用生成的url启动Internet Explorer应用程序。

我的问题是我能够启动IE浏览器,但我无法将URL传递给它。 我尝试了很多方法,但我无法完成它。

我在下面给出了我的代码。我删除了将URL传递给浏览器的错误语法。下面的代码将创建URL并启动一个空白的IE浏览器。

请帮帮我。提前谢谢。

<html> 
<head> 
<script language="VBScript"> 

    Sub RunProgram
        callb = document.getElementById("callb").value
        call = document.getElementById("call").value
        url = "www.google.com"&callb&"and"&call
        msgbox(url)
        Set objShell = CreateObject("Wscript.Shell")
        objShell.Run "iexplore.exe"
    End Sub

</script> 
</head> 
<body>

<form style="width:254px; height:44px;">
CallB: <input type="text" id="callb" value=""><br>
Call  : <input type="text" id="call" value=""><br><br>
<button onclick="RunProgram">search</button>
</form>

</body>
</html>

4 个答案:

答案 0 :(得分:3)

您可以使用WShell的Run()方法在默认浏览器中加载URL:

CreateObject("WScript.Shell").Run "www.google.com"

如果要在Internet Explorer中显式加载URL,则需要首先确定IEXPLORE.EXE的完整路径,然后将其传递给Run():

CreateObject("WScript.Shell").Run """" & strExePath & """ www.google.com"

或者

CreateObject("WScript.Shell").Run """" & strExePath & """ " & strURL

注意引号。如果路径包含空格,您将需要在IE的路径周围加引号。要在字符串中指定引号,您必须将其加倍。如果引号令人困惑,您可以使用Chr(34)指定引号字符:

CreateObject("WScript.Shell").Run Chr(34) & strExePath & Chr(34) & " " & strURL

答案 1 :(得分:0)

为了让生活更轻松,我通常使用此函数在变量中添加双引号。

Function DblQuote(Str)
    DblQuote = Chr(34) & Str & Chr(34)
End Function

一个示例,向您展示如何使用它。

Option Explicit
Dim fso,ws,DossierProgramfiles,Winrar,FileZilla,FireFox
Set fso = CreateObject("Scripting.FileSystemObject")
Set ws = CreateObject("WScript.Shell")
DossierProgramfiles = ws.ExpandEnvironmentStrings("%PROGRAMFILES%")
Winrar = DblQuote(DossierProgramfiles & "\Winrar\Winrar.exe")
If fso.FileExists(DossierProgramfiles & "\Winrar\Winrar.exe") Then
    MsgBox Winrar,Vbinformation,Winrar
    ws.run Winrar
Else
    MsgBox "Le fichier " & Winrar & " n'existe pas",VbCritical,"Le fichier " & Winrar & " n'existe pas"
End If
FileZilla = DblQuote(DossierProgramfiles & "\FileZilla FTP Client\filezilla.exe")
If fso.FileExists(DossierProgramfiles & "\FileZilla FTP Client\filezilla.exe") Then
    MsgBox FileZilla,Vbinformation,FileZilla
    Ws.run FileZilla
Else
    MsgBox "Le fichier " & FileZilla & " n'existe pas",VbCritical,"Le fichier " & FileZilla & " n'existe pas"
End If
FireFox = DblQuote(DossierProgramfiles & "\Mozilla Firefox\FireFox.exe")
If fso.FileExists(DossierProgramfiles & "\Mozilla Firefox\FireFox.exe") Then
    MsgBox FireFox,Vbinformation,FireFox
    ws.run FireFox
Else
    MsgBox "Le fichier " & FireFox & " n'existe pas",VbCritical,"Le fichier " & FireFox & " n'existe pas"
End If
'****************************************************************************************************
Function DblQuote(Str)
    DblQuote = Chr(34) & Str & Chr(34)
End Function
'****************************************************************************************************

答案 2 :(得分:0)

尝试使用此HTA:

<html>
<head>
<HTA:APPLICATION
APPLICATIONNAME="Search on Google with Internet Explorer"
BORDER="THIN"
BORDERSTYLE="NORMAL"
ICON="magnify.exe"
INNERBORDER="NO"
MAXIMIZEBUTTON="NO"
MINIMIZEBUTTON="NO"
SCROLL="NO"
SELECTION="NO"
SYSMENU="YES"
SINGLEINSTANCE="YES"/>
<META HTTP-EQUIV="MSThemeCompatible" CONTENT="YES">
<script language="VBScript">
Option Explicit
Dim Titre
Titre = "Search on Google with Internet Explorer"
Self.document.title = Titre
Sub window_onload()
    CALL CenterWindow(300,180)
    Self.document.bgColor = "Orange"
End Sub
Sub RunProgram()
    Dim X,Y,URL,objShell,Param,MaCmd
    X = text1.value
    Y = text2.value
    Param = "#q="& X & "+" & Y &""
    URL = "www.google.com"& Param
    Set objShell = CreateObject("Wscript.Shell")
    msgbox("iexplore.exe " & DblQuote(URL)),VbInformation,Titre
    MaCmd = "iexplore.exe "& DblQuote(URL) &""
    objShell.Run(MaCmd)
End Sub
'***************************************************
Function DblQuote(Str)
    DblQuote = Chr(34) & Str & Chr(34)
End Function
'***************************************************
'Position Windows
Sub CenterWindow(x,y)
    Dim iLeft,itop
    window.resizeTo x,y
    iLeft = window.screen.availWidth/2 - x/2
    itop = window.screen.availHeight/2 - y/2
    window.moveTo ileft, itop
End Sub
</script>
</head>
<body><center>
Text1 : <input type="text" id="text1" Name="text1" value="Hackoo"><br>
Text2 : <input type="text" id="text2" Name="text2" value="Vbscript+HTA"><br><br>
<input type="submit" Value="Search on Google" onclick="RunProgram()"></center>
</body>
</html>

答案 3 :(得分:0)

以下代码段会在默认浏览器中启动此网址。

CreateObject("WScript.Shell").Run url