Windows Scripting Host supports two modes of script execution - console and windowed. Quite often the scripts require access to stdio and therefore they should be run through cscript.exe. If they are running through wscript.exe it will cause an error.
To avoid this error, use the following code to force usage of CSCRIPT.EXE:
sub force_cscript
dim args : args=""
dim i, wshshell
If right(lCase(wscript.fullname),11)= "wscript.exe" then
for i=0 to wscript.arguments.count-1
args = args & wscript.arguments(i) & " "
next
set wshshell=createobject("wscript.shell")
wshshell.run wshshell.ExpandEnvironmentStrings("%comspec%") & _
" /c cscript.exe //nologo """ & wscript.scriptfullname
& """" & args 'change to /k for stay
set wshshell=nothing
wscript.quit
end if
end sub
ScriptCryptor allows you to specify the execution mode at compile time so the above code is no longer needed. Moreover, it will cause an error of execution because it will attempt to execute an EXE file instead of the VBS.
Execution mode can be selected in the Settings window of the project before compilation.