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.