Prompt dialog in WSH using JScript?

14,096

Solution 1

I think the WScript object does not provide such a method however you can show an input box from vbscript running on WSH. So here is one possible solution which lets you call that VB function from within JS! Please note the file extension for the following code fragment ".wsf".

<!-- Test.wsf -->
<job id="InputBoxInJS">
   <script language="VBScript">
      Function VBInputBox(promptText)
        VBInputBox = InputBox(promptText)
      End Function
   </script>

   <script language="JScript">
      WScript.Echo("Hello from JScript")
      var x = VBInputBox("Enter text")
      WScript.Echo(x)
   </script>
</job>

Solution 2

I know this question has been answered, but I wouldn't want to use the .wsf stuff and I also wouldn't want the overhead of loading internet explorer (as I've seen other solutions do). I found this solution using Google that I think is the most elegant:

http://with-love-from-siberia.blogspot.com/2009/12/msgbox-inputbox-in-jscript.html

The key is using the ActiveXObject "ScriptControl", setting the language to VBScript and then using the ScriptObject.eval() function. The example on the site stands on its own.

EDIT: For those encountering an error with 64 bit or line feed, etc., there's this improved version with instructions on how to run it (on systems like Win7 x64) here.

Share:
14,096
Berkyjay
Author by

Berkyjay

Updated on June 19, 2022

Comments

  • Berkyjay
    Berkyjay about 2 years

    How to open a prompt dialog box in WSH usig JScript??

    The only pop-up dialog I've found in the doc is the WshShell.Popup() method. But I need a way to request the user to enter a string, like the window.prompt() method in DOM.

    Thanks.

  • Berkyjay
    Berkyjay over 12 years
    The question has nothing to do with browsers. It's about Windows scripting under the Windows Script Host.
  • Admin
    Admin over 12 years
    @GetFree I'm pretty sure aikeru knows that - a browser can be invoked from WSH as a horrible workaround for some stuff is all he is saying.
  • aikeru
    aikeru over 12 years
    Yes, Jack Douglas is correct. My point is that while it is possible to use ActiveX and Internet Explorer to create a javascript popup and I've seen people do this -- but I think it's awful, lots of overhead, lots of potential for unforeseen issues. I wanted to present an alternative to both that and WSF (which is the selected answer). If my answer is unclear, I welcome suggestions or perhaps even an 'edit'. :)
  • Aacini
    Aacini about 11 years
    +1 Wow! This solution allows PURE JScript code to call VBScript functions! This point is much more important than the answer to this topic about dialog boxes...