从c#中捕获vbscript错误(从c#执行的vbscriot)
问题描述:
我试图从c#执行vbscript,vbscript始终成功运行,尽管事实上我没有运行此脚本的权限。从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#中捕获这个错误并分别抛出异常。
答
当你在这里使用不同的过程时,你没有太多的选择。这是关于它:
scriptProc.WaitForExit();
if (scriptProc.ExitCode != 0) throw new Exception("Script failed");
您可以通过使用COM脚本宿主执行过程中的脚本致富的错误信息。这可能是矫枉过正,很难说。
谢谢,这很好。但是,我如何使用COM脚本主机? – user1282991 2012-03-21 11:34:29