【问题标题】:Call VBScript from C# with WScript access使用 WScript 访问从 C# 调用 VBScript
【发布时间】:2017-11-10 21:20:36
【问题描述】:

带有 COM MSScriptControl 的 C# 代码:

var script = new MSScriptControl.ScriptControl();
script.Language = "VBScript";
script.AddObject("me", this, true);
//script.AddObject("WScript", wscript, true);
script.AddCode(System.IO.File.ReadAllText("Script.vbs"));

Script.vbs 内容:

Set oShell = WScript.CreateObject ("WScript.Shell")

错误:对象要求:'WScript'

如何在 C# 中为 addobject 创建 WScript 对象的实例?

【问题讨论】:

  • WScript 对象是由 wscript.exe 和 cscript.exe 实现的,图中不再显示。现在是您实现主机,因此您也必须实现 WScript。这并不一定很困难,但如果您想支持 WScript 所做的一切,它可能会很困难。您所要求的只是一个 C# 类,它是 [ComVisible(true)] 与公共对象 CreateObject(string progid, string prefix) 方法。调用 Microsoft.VisualBasic.Interaction.CreateObject(progid)。 WScript.Quit() 方法很难实现。

标签: c# vbscript


【解决方案1】:

您不需要/不能将 wscript.exe/cscript.exe 主机提供的 WScript 对象提供给 ScriptControl。只需使用普通的CreateObject。见here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多