The example script was originally posted by OMEGASTRIPES here: https://pastebin.com/wZYTtT8V
and was further discussed here, on Stack Overflow, under the following link: Pass two lines of text into InputBox
The script does basically exactly what I need (or at least the first part of it), which is to capture a long string of text (including a line break), which I then need to massage, in order to re-use parts of the string. The script is now doing everything I require with one exception. The example script presents the user's input in a window at the end. Instead of presenting the window, I merely want to assign the value of the user's input to a variable. Not being a developer (just dipping my toe occasionally, as and when necessary) I have struggled for several hours in trying to achieve this, including failed attempts at trying to use GetElementbyName. Could someone please put me out of my misery, as I'm sure this is going to turn out to be really simple, but I just don't know how and my research is drawing a blank. The offending lines in the example script are in the 3rd area of the case statement:
inputboxml = window.hta_textarea.value
window.close
The following is just one example of many different approaches I tried (and failed) to assign the value of the input to a variable:
inputboxml = document.getElementsByName("hta_textarea")
Any help anyone could offer me would be most gratefully received. Below is the entire example script.
Thanks, Steve
'Example Script
dim completed
msgbox inputboxml("Enter text:", "Multiline inputbox via HTA", "default" & vbcrlf & vbtab & "multiline" & vbcrlf & "text")
function inputboxml(prompt, title, defval)
set window = createwindow()
completed = 0
defval = replace(replace(replace(defval, "&", "&"), "<", "<"), ">", ">")
with window
with .document
.title = title
.body.style.background = "buttonface"
.body.style.fontfamily = "consolas, courier new"
.body.style.fontsize = "8pt"
.body.innerhtml = "<div><center><nobr>" & prompt & "</nobr><br><br></center><textarea id='hta_textarea' style='font-family: consolas, courier new; width: 100%; height: 580px;'>" & defval & "</textarea><br><button id='hta_cancel' style='font-family: consolas, courier new; width: 85px; margin: 10px; padding: 3px; float: right;'>Cancel</button><button id='hta_ok' style='font-family: consolas, courier new; width: 85px; margin: 10px; padding: 3px; float: right;'>OK</button></div>"
end with
.resizeto 700, 700
.moveto 100, 100
end with
window.hta_textarea.focus
set window.hta_cancel.onclick = getref("hta_cancel")
set window.hta_ok.onclick = getref("hta_ok")
set window.document.body.onunload = getref("hta_onunload")
do until completed > 0
wscript.sleep 10
loop
select case completed
case 1
inputboxml = ""
case 2
inputboxml = ""
window.close
case 3
inputboxml = window.hta_textarea.value
window.close
end select
end function
function createwindow()
rem source http://forum.script-coding.com/viewtopic.php?pid=75356#p75356
dim signature, shellwnd, proc
on error resume next
signature = left(createobject("Scriptlet.TypeLib").guid, 38)
do
set proc = createobject("WScript.Shell").exec("mshta ""about:<head><script>moveTo(-32000,-32000);</script><hta:application id=app border=dialog minimizebutton=no maximizebutton=no scroll=no showintaskbar=yes contextmenu=no selection=yes innerborder=no icon=""%windir%\system32\notepad.exe""/><object id='shellwindow' classid='clsid:8856F961-340A-11D0-A96B-00C04FD705A2'><param name=RegisterAsBrowser value=1></object><script>shellwindow.putproperty('" & signature & "',document.parentWindow);</script></head>""")
do
if proc.status > 0 then exit do
for each shellwnd in createobject("Shell.Application").windows
set createwindow = shellwnd.getproperty(signature)
if err.number = 0 then exit function
err.clear
next
loop
loop
end function
sub hta_onunload
completed = 1
end sub
sub hta_cancel
completed = 2
end sub
sub hta_ok
completed = 3
end sub