从c#捕获一个vbscript错误(从c#执行的vbscriot)



我正在尝试从c#执行vbscript,尽管我没有运行此脚本的权限,但vbscript始终成功运行。

代码:

        //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脚本主机在进程中执行脚本,可以获得丰富的错误信息。这可能有些过头了,很难说。

相关内容

  • 没有找到相关文章

最新更新