使用.NET,我可以编写一个托管脚本引擎的应用程序,该脚本引擎符合Microsoft的IActiveScript约定.这包括来自Microsoft的JScript和VBScript,以及PerlScript和RubyScript,我不知道第三方还有什么.
在代码中执行此操作的方法是这样的:
Type engine = Type.GetTypeFromProgID(progId, true);
_engine = Activator.CreateInstance(engine) as IActiveScript;
Run Code Online (Sandbox Code Playgroud)
其中progId可以采用Javascript,JScript,ECMAScript,VBScript等值.运行cscript.exe时可以执行类似的操作,在命令行中使用该//E选项指定progId .例如,这个命令:
cscript.exe <file> //e:JScript
Run Code Online (Sandbox Code Playgroud)
..将通过JScript引擎运行指定的文件,无论其扩展名如何.
在我的机器上,如果我查看HKLM\SW\Classes\,三个progIds {Javascript,JScript,ECMAScript}都指向相同的CLSID,我猜这是JScript 5.8脚本引擎:{f414c260-6ac0-11cf-b6d1-00aa00bbbb58}
是否有ProgId或CLSID我可以指定运行IE9的Javascript引擎,又称"Chakra"?
IE9的引擎是否仍然被IActiveScript加载?
Microsoft的文档表明它确实如此,但没有指定ProgId或CLSID.