2011-04-19 22 views
2

如何從C#應用程序中放置的TextBox控件執行VBScript的代碼?如何從C#應用程序的文本框內執行VBScript命令?

像,讓我們假設我有一個C#Windows應用程序(表單) 並有兩個控件!

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

txtCode有VBScript代碼 ,我想在btnExecute點擊執行VBScript代碼的時候!

+0

你不能得到寫在txtCode texbox中的值和btnExecute點擊方法執行它嗎? – Bastardo 2011-04-19 12:02:39

+0

@Muhamad:你爲什麼要騷擾C#應用程序? – Marshal 2011-04-19 12:04:05

+0

@EmreVeriyaz,你打算如何做到這一點.. VBScript是一種客戶端腳本語言..所以它只能在具有'html'頁面或'超文本應用程序'的瀏覽器中運行。 – 2011-04-19 12:05:19

回答

0

您將需要使用WebBrowser控制來做到這一點。

因爲我不認爲你可以在加載的頁面注入VBScript代碼。所以你可以做的是創建一個Temp .html頁面,將你的TextBox的腳本保存在它中,然後將它加載到WebBrowser控件中。

+1

VBScript不只是一種瀏覽器腳本語言,它可以與[Windows Script Host]一起使用(http://msdn.microsoft.com/zh-cn/library/9bbdkx3k( v = VS.85).aspx)以及服務器端ASP – 2011-04-19 12:56:03

0

難道你不能簡單地將它寫入文件並使用默認的Windows行爲或類似的東西來執行它?這是我能想到的唯一方式。

2

您可以直接通過VBS/JS的腳本運行時&通行碼&物體周圍。

向Microsoft腳本控制(COM)添加引用,然後您可以;

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)");