从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脚本宿主执行过程中的脚本致富的错误信息。这可能是矫枉过正,很难说。

+0

谢谢,这很好。但是,我如何使用COM脚本主机? – user1282991 2012-03-21 11:34:29