2012-03-21 4 views
2

私はこのスクリプトを実行する権限を持っていないにもかかわらず、vbscriptをC#から実行しようとしています。C#からvbscriptエラーをキャッチする(C#から実行されたvbscriot)

コード:

 //nswp is the User's password 
     foreach (char c in uspw) 
     { 
      password.AppendChar(c); 
     } 
     Process scriptProc = new Process(); 
     scriptProc.StartInfo.RedirectStandardOutput = true; 
     scriptProc.StartInfo.RedirectStandardError = true; 
     scriptProc.StartInfo.Domain = "moia.gov.il"; 
     scriptProc.StartInfo.ErrorDialog = true; 
     scriptProc.StartInfo.UserName = Globals.CURRENT_USER.user_name; 
     scriptProc.StartInfo.Password = password; 
     scriptProc.StartInfo.UseShellExecute = false; 
     scriptProc.StartInfo.FileName = @"cscript"; 
     scriptProc.StartInfo.Arguments = "//B //Nologo " + pathSave; 
     scriptProc.Start(); 
     scriptProc.WaitForExit(); 
     scriptProc.Close(); 

私は私が必要として、私は、権限エラーが発生します(ファイルのアイコンをダブルクリックして)手動でVBScriptを実行しています。

どうすればこのエラーをC#で捕捉し、例外をスローすることができますか。

答えて

0

ここのような別のプロセスを使用する場合、多くのオプションがありません。これはそれについてです:

scriptProc.WaitForExit(); 
    if (scriptProc.ExitCode != 0) throw new Exception("Script failed"); 

あなたはCOMスクリプティングホストを使用して、インプロセススクリプトを実行することにより、豊富なエラー情報を取得することができます。それは過労かもしれませんが、伝えるのは難しいでしょう。

+0

ありがとう、それは完璧に動作します。しかし、どのようにCOMスクリプトホストを使用していますか? – user1282991

関連する問題