此文件是 DotNetToJScript 的一部分——一个用于生成 JScript 的工具,该 JScript 可引导加载任意 .NET 程序集和类。 版权所有 (C) James Forshaw 2017
DotNetToJScript 是自由软件:你可以根据自由软件基金会发布的 GNU 通用公共许可证(第 3 版或你选择的任何更高版本)的条款重新分发和/或修改它。
DotNetToJScript 的分发是希望它有用, 但不提供任何担保;甚至不提供适销性或特定用途适用性的默示担保。有关更多详细信息,请参阅 GNU 通用公共许可证。
你应该已随 DotNetToJScript 收到 GNU 通用公共许可证的副本。如果没有,请参阅 http://www.gnu.org/licenses/。
使用说明:
这只能从完全信任的 JScript 中运行(显然如此),因此应该可以在 scriptlet 等环境中使用。默认情况下,只有在安装了 v2/v3/v3.5 时它才能工作。 但是,如果在构建输出时指定 '-ver auto' 开关,它也可以在仅安装 v4+ 的环境中工作,不过这会引入对 WScript.Shell 的依赖,你可能并不希望这样。
要使用此工具,你需要创建一个面向 .NET 2 的程序集(不过在大多数情况下你也可以使用 3.5,因为你通常不会看到单独安装 .NET 2 的情况)。在程序集中实现一个名为 TestClass 的类,并在公共的无参数构造函数中执行你想要做的操作。
public class TestClass { public TestClass() { /* Start notepad */ Process.Start("notepad.exe"); } }
确保它是公共的。然后将 .NET 程序集的路径传递给此工具。 如果为该类标注 ComVisible 特性,你甚至可以在对象创建后与其交互。例如:
[ComVisible(true)] public class TestClass { public void DoSomething(string arg) { } }
你可以使用 -c 开关并添加名称来更改入口类的名称。 你还可以让工具添加额外的代码来与对象交互,方法是使用 -s 参数指定一个包含额外 JScript 的文本文件的路径。创建的对象名为 'o',因此例如如果你想调用 DoSomething 方法,请加载一个包含以下内容的文件:
o.DoSomething("SomeArg");
默认模式是输出一个可在 Windows Scripting Host 中执行的 JScript 文件。但是,如果你想要 scriptlet,请传入 -m(用于可通过 scriptlet moniker 使用的 scriptlet)或 -u(用于可通过 regsvr32 使用的 scriptlet)。你还可以指定 '-l vba' 开关来输出一个应在 Office 宏中可用的 VBA 文件,或指定 '-l vbscript' 来输出 VBScript。
最后,默认情况下工具会输出到 stdout,你可以使用 -o 开关直接输出到文件。