2017-09-29 27 views
3

我有下面的VBScript代碼在MyScript.vbs:的VBScript GetObject的()不工作如果從C#WPF應用程序稱爲

Dim myApp  
Set myApp = GetObject(,"ViewDraw.Application") 

我把它從PowerShell命令行,像這樣:

cscript MyScript.vbs //I 

這按預期工作; myApp設置爲我正在查找的過程,並且可以與它進行交互。

下面是一些C#代碼,試圖做同樣的事情:

var script = new Process(); 
script.StartInfo.FileName = "cscript"; 
script.StartInfo.Arguments = @"<MyWorkingFolder>\MyScript.vbs //I"; 

script.StartInfo.CreateNoWindow = true; 
script.StartInfo.RedirectStandardOutput = true; 
script.StartInfo.UseShellExecute = false; 
script.Start(); 

//Read anything sent out by program 
string output = script.StandardOutput.ReadToEnd(); 

script.WaitForExit(); 

VBScriptResult result = new VBScriptResult(); 
result.returnCode = script.ExitCode; 
result.stdOut = output; 
return result; 

當我執行的C#代碼,在VBScript中的GetObject的()調用失敗。有類似的SO問題,我已經嘗試了他們的建議。一個建議是明確地調用cscript的32位或64位版本。然而,兩者都沒有奏效。

這並不總是一個問題。代碼現在已經有幾年了,並且已經在過去。對Visual Studio 2017進行更新可能會導致此問題。我目前正在運行版本15.3.5。

我一直在這個問題上停留了一週,所以任何幫助都非常感謝!

+2

「當我執行C#代碼時,VBScript在GetObject()調用失敗。」闡述? – itsme86

+0

VBScript錯誤是「ActiveX組件無法創建對象:'GetObject'」。但是,我通過重新安裝Visual Studio解決了問題。我會在下面解釋更多。 – polyrhythms

回答

0

問題在於Visual Studio 2017,可能是更新15.3或更高版本的結果。相同的代碼在VS 2015更新3中正常工作。

相關問題