using PSPad from a long time, i am looking at VBS to add a specific feature but
i am stuck around SLEEP feature.
when a VBS script is running, PSPad is stuck and it is normal, but when i am
using  SLEEP 100 command in script, during this time, control is given to PSPAD
and PSPAD should manage all events but it doesn't.
Also, when i try to run a VBS script opening a windows and waiting for an event
in a loop with SLEEP 100, script is stuck because events are not managed... in
fact SLEEP is just a temporization but don't integrate ProcessMessages in
PSPad.

your feedback will be welcome, and thanks for this wonderful tool

script tested : 
'option explicit
 const module_name  = "hta test"         'this name must be unique !!!
 const module_desc  = "test d'un hta"  'script description
 const module_ver   = "0.001"         'version
  dim completed

sub main 
msgbox inputboxml("Enter text:", "Multiline inputbox via HTA", "Enter your name
: " & vbcrlf & "Enter your Age : " & vbcrlf &_
"Enter email id you want to send : " & vbcrlf & "Enter Subject : " & vbcrlf &
"Enter Email Body : " )
end sub

function inputboxml(prompt, title, defval)
    set window = createwindow()
    completed = 0
    defval = replace(replace(replace(defval, "&", "&amp;"), "<", "&lt;"), ">",
"&gt;")
    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: 400px;'>" & 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 550, 550
        .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
        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
otepad.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

 '============================================='
  sub Init
 '============================================='  
    addMenuItem "testscript"                 ,"test"   , "main"
  end sub

-- 
<https://forum.pspad.com/read.php?2,70967,70967>
PSPad freeware editor https://www.pspad.com

Odpovedet emailem