【问题标题】:How to execute VBScript command within textbox from C# application?如何在 C# 应用程序的文本框中执行 VBScript 命令?
【发布时间】:2011-04-19 11:55:04
【问题描述】:

如何从放置在 C# 应用程序中的 TextBox 控件执行 VBScript 的代码?

,假设我有一个 C# Windows 应用程序(表单) 并且有两个控件!

  1. 文本框 (txtCode)
  2. 按钮(btnExecute)

txtCode 有 VBScript 代码 我想在点击 btnExecute 时执行 VBScript 代码!!

【问题讨论】:

  • 不能获取txtCode texbox中写入的值,在btnExecute点击方法上执行吗?
  • @Muhamad:你为什么要骚扰 C# 应用程序??
  • @EmreVeriyaz 以及您打算如何做到这一点.. VBScript 是一种客户端脚本语言.. 所以它只能在带有html 页面或Hyper Text Application 的浏览器中运行。
  • @Shekhar 学习很好,谢谢。
  • @Shekhar Windows Script Host 不需要htmlhta

标签: c# vbscript textbox


【解决方案1】:

您可以将 VBS/JS 直接传递给脚本运行时并传递代码和对象。

向 Microsoft 脚本控件 (COM) 添加 ref 即可;

MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
object[] anyParams = { "Bob"};
string expr = @"function foo(arg)
    dim x: x = ""Hello "" & arg 
    msgbox x
    foo = 12345 
    End function";

sc.Language = "VBScript";
sc.AddCode(expr);

object result = sc.Run("foo", ref anyParams);

//also
sc.Reset();
result = sc.Eval("1 + 2 / 3 + abs(-99)");

【讨论】:

    【解决方案2】:

    您需要使用WebBrowser Control 来执行此操作。

    因为我不认为您可以在加载的页面中注入 VBScript 代码。所以你可以做的是创建一个 Temp .html 页面,将你的 TextBox 的脚本保存在其中,然后将其加载到 WebBrowser 控件中。

    【讨论】:

    • VBScript 不仅仅是一种浏览器脚本语言,它可以和Windows Script Host一起使用,也可以和服务器端的ASP一起使用
    【解决方案3】:

    您不能简单地将其写入文件并使用默认的 Windows 行为或类似的方式执行它吗?这是我能想到的唯一方法。

    【讨论】:

      【解决方案4】:
      猜你喜欢
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 2011-07-22
      相关资源
      最近更新 更多