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。
我一直在这个问题上停留了一周,所以任何帮助都非常感谢!
“当我执行C#代码时,VBScript在GetObject()调用失败。”阐述? – itsme86
VBScript错误是“ActiveX组件无法创建对象:'GetObject'”。但是,我通过重新安装Visual Studio解决了问题。我会在下面解释更多。 – polyrhythms