Как отобразить выходные данные из файла. vbs, обработанные с помощью оконного приложения C#.
У меня есть файл .vbs,который должен быть доступен в приложении c#, чтобы передать параметры и отобразить out.
В настоящее время, когда я выполняю файл .vbs через командную строку, я могу видеть выходные данные.В то время как то же самое происходит при доступе через процесс C# Diagostics. Я не понимаю, как отображать выходные данные.
Пожалуйста, помогите мне отобразить вывод.
Пожалуйста, приведите мне пример.
Что я уже пробовал:
Код C# :
static class Program { /// <summary> /// The main entry point for the application. /// </summary> private static int lineCount=0; private static StringBuilder output= new StringBuilder(); [STAThread] static void Main() { Process scriptProc = new Process(); scriptProc.StartInfo.FileName = @"cscript"; //scriptProc.StartInfo.WorkingDirectory = @"D:\vbs\"; //<---very important scriptProc.StartInfo.Arguments = "//B //Nologo D:\vbs\test.vbs"; scriptProc.StartInfo.UseShellExecute = true; scriptProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; //prevent console window from popping up scriptProc.StartInfo.UseShellExecute = false; scriptProc.StartInfo.RedirectStandardOutput = true; scriptProc.OutputDataReceived += new DataReceivedEventHandler((sender, e) => { if (!String.IsNullOrEmpty(e.Data)) { lineCount++; output.Append("\n[" + lineCount + "]:" + e.Data); } }); //try //{ scriptProc.Start(); scriptProc.BeginOutputReadLine(); scriptProc.WaitForExit(); // <-- Optional if you want program running until your script exit Console.WriteLine(output); scriptProc.WaitForExit(); scriptProc.Close(); //System.Diagnostics.Process.Start(@"cscript //B //Nologo D:\vbs\test.vbs"); //} //catch(Exception exception) //{ // Console.WriteLine("Exception :" + exception.Message); //} Console.ReadLine(); } }
.vbsfile:
intHighNumber = 100 intLowNumber = 1 For i = 1 to 5 Randomize intNumber = Int((intHighNumber - intLowNumber + 1) * Rnd + intLowNumber) Wscript.Echo intNumber Next