从C#运行vbs子文件#
问题描述:
是否可以从c#应用程序执行vbs文件中的特定子文件?从C#运行vbs子文件#
我已经看过创建一个进程然后启动它,但无法找到一种方法来指定脚本文件中哪个特定的子文件应该执行。有没有一种方法可以说明这一点,或者有更好的方法来做到这一点?
一个vbs可能看起来像下面的示例。我想要的是从C#代码启动test1或test2。
Public Sub test1
msgbox "Hey1"
End Sub
Public Sub test2
msgbox "Hey2"
End Sub
答
当使用Visual Basic(没有.Net)时,我使用了Script Control。
This page包含一些文档如何从良好的旧VB调用它。
语法看起来是这样的:
Result = ScriptControl.Run("Name", arg1, arg2, ... argn)
编辑(阅读后评论): 如果您不需要VBScript来在你的环境中运行(如果你不共享对象),你可以创建一个运行脚本进程外的小应用程序。你的主应用程序是64位,助手应用程序是32位。你仍然可以传递简单的参数。
感谢GvS和Christian提供的关于scriptcontrol的提示,不过这很遗憾在64位Windows 7中似乎不起作用。如果我将目标设置为x86,则应用程序运行良好并且脚本被执行,但只要我切换到任何CPU或x64它不能导入COM对象。 Googeling为它带来了一些关于MSScriptControl不能在64位环境中工作的帖子。 将应用程序设置为32位不是一个选项,应用程序应该在64位操作系统上以x64模式运行,所以我害怕使用ScriptControl不适用于我。 有没有其他想法? – Mikael 2010-03-09 14:36:13