как обрабатывать диагностические сообщения WinRAR из кода

Я разрабатываю приложение Windows в этом приложении. Я использую утилиту командной строки winrar для создания файлов rar.

Код

  public  статическая строка RarFiles (строка rarPackagePath, Dictionary  accFiles) {string error = "";  попробуйте {строка [] файлы = новая строка [accFiles.Count];  int я = 0;  foreach (var fList_item в accFiles) {files [i] = "" "+ fList_item.Value; i ++;} строка fileList = string.Join ("  "", файлы);  fileList + = "" "; System.Diagnostics.ProcessStartInfo sdp = new System.Diagnostics.ProcessStartInfo (); string cmdArgs = string.Format (" A {0} {1} -ep1 -r ", String.Format ("   "{0} " ", rarPackagePath), fileList); sdp.ErrorDialog = true; sdp.UseShellExecute = true; sdp.Arguments = cmdArgs; sdp.FileName = winrarPath;//путь Winrar.exe sdp.CreateNoWoW  ; sdp.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; System.Diagnostics.Process process = System.Diagnostics.Process.Start (sdp); process.WaitForExit ();//строка s = process.StandardOutput.ReadToEnd ();  error = "OK";} catch (Exception ex) {error = ex.Message;} return error;}  

Может ли кто-нибудь сказать мне, как я могу обрабатывать диагностические сообщения WinRAR.


0

Я думаю, вы пропустили некоторые части:

попробуйте добавить следующее:

  sdp.StartInfo.RedirectStandardOutput = true;  

после Start добавьте строку, чтобы получить результат. После этого вызовите WaitForExit ()

  sdp.Start (); string output = stillc.StandardOutput.ReadToEnd (); sdp.WaitForExit ();  

* Примечание: это работает, только если вывод отображается в окне консоли.

Надеюсь, это поможет 🙂

Поделиться
Улучшить этот ответ
ответил 14 июня ’13 в 11:45
  • Для этого мне нужно установить sdp.UseShellExecute = false; который показывает исполняемые окна. И я не хочу показывать эти окна. Кстати, он все еще показывает пустой вывод — Ашиш Ратор, 14 июня. 13 в 12:29
добавить комментарий |

Думаю, вы пропустили некоторые детали:

попробуйте добавить эти:

  sdp.StartInfo.RedirectStandardOutput = true;  

после Start добавьте строку для получения вывода. После этого вызовите WaitForExit ()

  sdp.Start (); string output = stillc.StandardOutput.ReadToEnd (); sdp.WaitForExit ();  

* Примечание: это работает, только если вывод отображается в окне консоли.

Надеюсь, это поможет 🙂

Оцените статью
Botgadget.ru
Добавить комментарий