VBScript Scripting Techniques > User Interaction > User Input
WSH (StdIn or InputBox) | |
---|---|
VBScript Code: | |
strInput = UserInput( "Enter some input:" ) WScript.Echo "You entered: " & strInput Function UserInput( myPrompt ) ' This function prompts the user for some input. ' When the script runs in CSCRIPT.EXE, StdIn is used, ' otherwise the VBScript InputBox( ) function is used. ' myPrompt is the the text used to prompt the user for input. ' The function returns the input typed either on StdIn or in InputBox( ). ' Written by Rob van der Woude ' http://www.robvanderwoude.com ' Check if the script runs in CSCRIPT.EXE If UCase( Right( WScript.FullName, 12 ) ) = "\CSCRIPT.EXE" Then ' If so, use StdIn and StdOut WScript.StdOut.Write myPrompt & " " UserInput = WScript.StdIn.ReadLine Else ' If not, use InputBox( ) UserInput = InputBox( myPrompt ) End If End Function |
|
Requirements: | |
Windows version: | All |
Network: | N/A |
Client software: | Windows Script 5.6 for Windows 98, ME, and NT 4 (no longer available for download?) |
Script Engine: | WSH |
Summarized: | Works in any Windows version, provided Windows Script 5.6 for Windows 98, ME, and NT 4 is installed for Windows 98, ME, and NT 4 (no longer available for download?). |
[Back to the top of this page] | |
InternetExplorer.Application | |
VBScript Code: | |
Function GetUserInput( myPrompt ) ' This function uses Internet Explorer to ' create a dialog and prompt for user input. ' ' Version: 2.11 ' Last modified: 2013-11-07 ' ' Argument: [string] prompt text, e.g. "Please enter your name:" ' Returns: [string] the user input typed in the dialog screen ' ' Written by Rob van der Woude ' http://www.robvanderwoude.com ' Error handling code written by Denis St-Pierre Dim objIE ' Create an IE object Set objIE = CreateObject( "InternetExplorer.Application" ) ' Specify some of the IE window's settings objIE.Navigate "about:blank" objIE.Document.title = "Input required " & String( 100, "." ) objIE.ToolBar = False objIE.Resizable = False objIE.StatusBar = False objIE.Width = 320 objIE.Height = 180 ' Center the dialog window on the screen With objIE.Document.parentWindow.screen objIE.Left = (.availWidth - objIE.Width ) \ 2 objIE.Top = (.availHeight - objIE.Height) \ 2 End With ' Wait till IE is ready Do While objIE.Busy WScript.Sleep 200 Loop ' Insert the HTML code to prompt for user input objIE.Document.body.innerHTML = "<div align=""center""><p>" & myPrompt _ & "</p>" & vbCrLf _ & "<p><input type=""text"" size=""20"" " _ & "id=""UserInput""></p>" & vbCrLf _ & "<p><input type=""hidden"" id=""OK"" " _ & "name=""OK"" value=""0"">" _ & "<input type=""submit"" value="" OK "" " _ & "OnClick=""VBScript:OK.value=1""></p></div>" ' Hide the scrollbars objIE.Document.body.style.overflow = "auto" ' Make the window visible objIE.Visible = True ' Set focus on input field objIE.Document.all.UserInput.focus ' Wait till the OK button has been clicked On Error Resume Next Do While objIE.Document.all.OK.value = 0 WScript.Sleep 200 ' Error handling code by Denis St-Pierre If Err Then ' user clicked red X (or alt-F4) to close IE window IELogin = Array( "", "" ) objIE.Quit Set objIE = Nothing Exit Function End if Loop On Error Goto 0 ' Read the user input from the dialog window GetUserInput = objIE.Document.all.UserInput.value ' Close and release the object objIE.Quit Set objIE = Nothing End Function |
|
Sample VBScript Code: | |
strUserInput = GetUserInput( "Please enter your name:" ) WScript.Echo "Your name is: " & strUserInput |
|
Requirements: | |
Windows version: | any |
Network: | any |
Client software: | Internet Explorer 4 or later |
Script Engine: | WSH (CSCRIPT and WSCRIPT) (to use in HTAs, remove both WScript.Sleep lines) |
Summarized: | Works in all Windows versions with Internet Explorer 4 or later, remove both WScript.Sleep lines to use in HTAs. |
[Back to the top of this page] |
page last modified: 2016-09-19; loaded in 0.0019 seconds