2010-03-09 90 views
5

是否可以從c#應用程序執行vbs文件中的特定子文件?從C#運行vbs子文件#

我已經看過創建一個進程然後啓動它,但無法找到一種方法來指定腳本文件中哪個特定的子文件應該執行。有沒有一種方法可以說明這一點,或者有更好的方法來做到這一點?

一個vbs可能看起來像下面的示例。我想要的是從C#代碼啓動test1或test2。

Public Sub test1 
    msgbox "Hey1" 
End Sub 

Public Sub test2 
    msgbox "Hey2" 
End Sub 

回答

1

當使用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