VBScript 使用生成的 URL 启动 Internet Explorer

问题描述 投票:0回答:6

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

表单中有两个输入框(均为必填)。 当我输入值并单击搜索按钮时,将根据输入创建一个网址。 应使用生成的 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>
internet-explorer vbscript scripting hta
6个回答
4
投票

您可以使用 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

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
'****************************************************************************************************

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>

0
投票

下面的代码片段将在默认浏览器中启动此网址。

CreateObject("WScript.Shell").Run url


0
投票

这个怎么样

这是一个VBS脚本

Set objExplorer = CreateObject("InternetExplorer.Application")
With objExplorer
        .Navigate strPath
        .ToolBar = 1
        .StatusBar = 1
        .Width = 1000
        .Height = 593 
        .Left = 1
        .Top = 1
        .Visible = 1
        .Navigate("https://www.google.com")
End With

0
投票

我按摩了 Azu-nyan 的答案,这将在 Windows 10 Pro 上打开 IE 到某个 URL。只需将其放入 .vbs 文件中并双击即可。

Set ieObj = CreateObject("InternetExplorer.Application")
With ieObj
    .Visible=true
    .Navigate("http://192.168.1.246/")
End With

我需要 IE 来为一些非常旧的有线安全摄像头运行基于 ActiveX 的查看器应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.