hallo zusammen,
ich habe immer noch ein kleines problem mit meiner windows anwendung.
ich starte die kommandozeile und führe einen befehl aus.
das ergebnis schreibe ich in ein textfeld und in eine arrylist. soweit funktioniert das auch ganz gut.
wenn ich jetzt aber mit auf die einzelnen elemente in der arrylist zugreifen will sieht das eher schlecht aus!
die events kommen leider nicht schnell genung, heißt meine arrylist ist noch leer.
ich habe das ganze mit versucht. leider stürzt mir dann die ganze anwendung ab ohne in meinen catchblock zu laufen.
kann mir vieleicht jemand weiter helfen?
hier mein bisheriger code:
Alles anzeigen
thx, truespin
ich habe immer noch ein kleines problem mit meiner windows anwendung.
ich starte die kommandozeile und führe einen befehl aus.
das ergebnis schreibe ich in ein textfeld und in eine arrylist. soweit funktioniert das auch ganz gut.
wenn ich jetzt aber mit auf die einzelnen elemente in der arrylist zugreifen will sieht das eher schlecht aus!
die events kommen leider nicht schnell genung, heißt meine arrylist ist noch leer.
ich habe das ganze mit versucht. leider stürzt mir dann die ganze anwendung ab ohne in meinen catchblock zu laufen.
kann mir vieleicht jemand weiter helfen?
hier mein bisheriger code:
Quellcode
- string sPathSvn = @"D:\tools\svn-win32-1.4.5\bin\svn.exe";
- string sUrl = "https://subversion/svn/...";
- string sList = "list";
- try
- {
- Process pro = new Process();
- pro.OutputDataReceived += new DataReceivedEventHandler(pro_OutputDataReceived);
- ProcessStartInfo psi = new ProcessStartInfo(@"C:\WINNT\system32\cmd.exe");
- psi.UseShellExecute = false;
- psi.RedirectStandardOutput = true;
- psi.RedirectStandardError = true;
- psi.RedirectStandardInput = true;
- psi.CreateNoWindow = true;
- psi.Arguments = "/c \"" + sPathSvn + " " + sList + " " + sUrl + " \"";
- pro.StartInfo = psi;
- pro.Start();
- pro.BeginOutputReadLine();
- //pro.Close();
- //pro.WaitForExit();
- foreach (string s in receivedData)
- {
- if (s == "sut/")
- {
- MessageBox.Show("test");
- }
- }
- receivedData.Clear();
- }
- catch (Exception o)
- {
- MessageBox.Show(o.Message + o.Source + o.InnerException);
- }
- }
- void pro_OutputDataReceived(object sender, DataReceivedEventArgs e)
- {
- try
- {
- if (e.Data != null && e.Data != "")
- {
- txtLabel.Invoke(new EventHandler(delegate{txtLabel.AppendText(e.Data + "\r\n");}));
- receivedData.Add(e.Data);
- }
- }
- catch (Exception o)
- {
- MessageBox.Show(o.Message + o.Source + o.InnerException);
- }
- }
thx, truespin