Перехват VBScript ошибки из C # (VBscriot выполняется из C #) - PullRequest
2 голосов
/ 21 марта 2012

я пытаюсь выполнить vbscript из c #, 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 # и вызвать исключение соответственно.

1 Ответ

0 голосов
/ 21 марта 2012

У вас не так много вариантов при использовании другого процесса, как здесь. Это примерно так:

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

Вы можете получить расширенную информацию об ошибках, выполнив сценарий в процессе работы с помощью хоста сценариев COM. Трудно сказать, что это может быть излишним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...