.Net 替换 VBScript (interop.msscriptcontrol.dll) DLL

标签 .net dll com vbscript replace

我们正在使用 interop.msscriptcontrol.dll 来执行简单的 VBScript 变量代码(“Today - 1”之类的东西)。我们的应用程序是除此之外的非 COM 组件。我们已经搜索了 VBScript 的 .Net 替代品,但一直找不到。

是否有 .Net 的 VBScripting 替代品?

最佳答案

在下面的示例中,我将使 WebBrowser 控件计算 VBScript 表达式“Now - 1”并将结果嵌入到 WebBrowser 的 document.title 中,以便我可以在 C# 中获取它:

WebBrowser wb = new WebBrowser();
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(
    (object _sender, WebBrowserDocumentCompletedEventArgs _e) =>
    {
        MessageBox.Show(wb.Document.Title);
    }
);
wb.DocumentText = @"
<HTML>
<HEAD>
<TITLE>Hello</TITLE>
<SCRIPT language=""VBScript"">
document.title = Now - 1
</SCRIPT>
</HEAD>
<BODY/>
</HTML>";

显然,这种方法存在以下问题:

  • 结果作为字符串处理
  • 结果需要异步处理
  • 糟糕的代码注入(inject)会导致无效的结果
  • 它可能表现不佳,并可能导致您的应用出现瓶颈

我的直觉是这种方法可能比您当前使用的方法更糟糕。

关于.Net 替换 VBScript (interop.msscriptcontrol.dll) DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10471880/

相关文章:

c++ - 如何配置 VS 2010 来创建一个利用其他 DLL 的 DLL

c++ - 当 Matlab 中仅接受 Int32Ptr 时,以字符串形式返回错误号

c# - 我如何在 C++ 中使用 ArrayList?

.net - PowerShell有什么用?

C#访问类内部静态

.net - OAuth2.0 中的身份验证以及它如何与 OpenId 配合使用

c# - 是否可以在 C# 类库中创建 Windows 窗体?

c++ - C++ 的 OLE 自动化问题 - "Class not registered"

c++ - CreateWICTextureFromFile 返回 E_NOINTERFACE

用于拆分 url 和删除最后一部分的 javascript