【问题标题】:How to work with user's text entry in an HTA form如何在 HTA 表单中处理用户的文本输入
【发布时间】:2013-08-05 16:16:27
【问题描述】:

我的 hta 文件上有一个按钮,当我单击该按钮时,将触发批处理文件运行。我希望用户在文本框中输入计算机名称,并在下面需要计算机名称的 psexec 命令中使用它。任何建议将不胜感激。

<script language="VBScript">
Sub InstallVNC
    dim shell
    set shell=createobject("wscript.shell")
    shell.run "psexec -u domain01\username -p password \\textbox1.value -c \\doamin\SHARE\SOFTWARE\install_program.bat"
End Sub


<body bgcolor="buttonface">
<p><font face="verdana" color="red">Application Installer</font></p>
Please run as administrator. <p>
<form name="test">
<font>Computer Name:</font>
<input type="text" name="textbox1" id="textbox1">
</form>
<input id=runbutton  class="button" type="button" value="Install VNC" name="db_button"  onClick="installvnc"><p>

</body>
</html>

【问题讨论】:

    标签: vbscript hta


    【解决方案1】:

    基本的 DOM 操作:

    Dim computerName
    computerName = document.getElementById("textbox1").value
    

    有关更多信息,您几乎可以查阅任何 DOM 参考资料(例如,https://developer.mozilla.org/en-US/docs/DOM

    【讨论】:

    • 在 HTA 中,您可以仅使用 ID 访问元素,因此如果元素确实具有 ID“textbox1”,textbox1.value 应该可以正常工作。
    • 同意。同时使用 HTA 和 document 对象的人并不多。
    【解决方案2】:

    您需要以不同的方式处理输入字符串。像这样的:

    Sub InstallVNC
      dim shell
      dim strInput
      dim shell_parameter
      strInput = textbox1.value
      shell_parameter = "psexec -u domain01\username -p password \\" & strInput  & " -c   \\doamin\SHARE\SOFTWARE\install_program.bat"
      set shell=createobject("wscript.shell")
      shell.run shell_parameter
    End Sub
    

    关于获取用户输入:我没有在 hta 中使用过&lt;form&gt;——对话框一直比较简单。我想知道这是否能让你解决问题。按下按钮时将调用此代码:

    Dim strDialogPrompt, strDialogTitle, strDialogDefault
    
    strDialogTitle = "File location"
    
    strDialogPrompt = "Enter location of file to install." _
        & vbCrLf & "(You must run this as Administrator.)"
    
    strDialogDefault = "Z:\The_Usual_Path"
    
    strInput = InputBox(strDialogPrompt, strDialogTitle, strDialogDefault, 150, 150)
    

    【讨论】:

    • 仍然给我一个错误信息。说需要对象'textbox1',代码0
    • 我想这很懒惰,但我在我的答案中添加了一个建议:跳过&lt;form&gt;&lt;input&gt; 标签,用一个对话框来简单。
    • @user2651624 代码对我有用。您的输入字段实际上是否具有 ID“textbox1”?
    • 对不起。它确实奏效了。他是对的。我拿出
      并且它起作用了。谢谢。
    猜你喜欢
    • 2018-02-22
    • 2015-09-30
    • 2016-10-22
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    相关资源
    最近更新 更多