从C#运行vbs子文件#

从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位。你仍然可以传递简单的参数。

+0

感谢GvS和Christian提供的关于scriptcontrol的提示,不过这很遗憾在64位Windows 7中似乎不起作用。如果我将目标设置为x86,则应用程序运行良好并且脚本被执行,但只要我切换到任何CPU或x64它不能导入COM对象。 Googeling为它带来了一些关于MSScriptControl不能在64位环境中工作的帖子。 将应用程序设置为32位不是一个选项,应用程序应该在64位操作系统上以x64模式运行,所以我害怕使用ScriptControl不适用于我。 有没有其他想法? – Mikael 2010-03-09 14:36:13

您使用Windows脚本控制COM组件并调用其Run方法。这里有一个有用的link with code examples