Error when try to use "ScriptControl" from "MSScriptControl" in VbsScript

273 Views Asked by At

I trying to run this code:

Dim jsonString, jsonDictionary

jsonString = "{ ""name"": ""John"", ""age"": 30, ""city"": ""New York"" }"

Set jsonDictionary = JSONToDictionary(jsonString)

MsgBox(jsonDictionary.Item("name")) ' -> "John"
MsgBox(jsonDictionary.Item("age")) ' -> 30
MsgBox(jsonDictionary.Item("city")) ' -> "New York"

Function JSONToDictionary(jsonString)
    ' Crea un objeto de script
    Set jsonObject = CreateObject("ScriptControl")
    ' Establece la sintaxis JSON como el lenguaje de script
    jsonObject.Language = "JScript"
    ' Utiliza el método eval() del objeto de script para parsear la cadena JSON
    Set jsonDictionary = eval("(" + jsonString + ")")
    ' Devuelve el objeto diccionario
    JSONToDictionary = jsonDictionary
End Function

But I get the error: "The ActiveX component can't create the object: 'ScriptControl' ". Also I get the error: "System: This operation is not supported with BTT enabled".

I've tried everything but it doesn't work, would you know how to fix it?

1

There are 1 best solutions below

0
On

(Reposting from LesFerch comment above)

It sounds like you're running your script with the 64bit version of WScript or CScript while trying to use a 32bit COM object. Try running your script in 32bit mode. That is, use C:\Windows\SysWOW64\wscript.exe or C:\Windows\SysWOW64\cscript.exe.