私が持っているMyScript.vbsで、次のVBScriptコード:私はそうのように、PowerShellコマンドラインから呼び出すのVBScriptのGetObject()
Dim myApp
Set myApp = GetObject(,"ViewDraw.Application")
:
cscript MyScript.vbs //I
これは期待どおり動作します。 myAppは私が探しているプロセスに設定されており、私はそれとやりとりすることができます。ここで
は同じことをしようとするいくつかのC#コードです:私は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;
、VBScriptのはのGetObject()の呼び出しに失敗しました。同様のSOの質問があり、私は彼らの提案を試みました。 1つの提案は、32ビット版または64ビット版のcscriptを明示的に呼び出すことでした。しかし、どちらもうまくいきませんでした。
これはいつも問題ではありません。このコードは数年前のことであり、これまでも働いていました。 Visual Studio 2017のアップデートによって何とかこの問題が発生した可能性があります。私は現在、バージョン15.3.5を実行しています。
私は1週間この問題に立ち往生していますので、何か助けに感謝します!
"C#コードを実行すると、GetObject()呼び出しでVBScriptが失敗します。"精巧? – itsme86
VBScriptエラーは、 "ActiveXコンポーネントはオブジェクトを作成できません: 'GetObject'です。しかし、私はVisual Studioを再インストールして問題を解決しました。私は以下でさらに説明します。 – polyrhythms