void mPrerusit_Click(object sender, RoutedEventArgs e) { preruseno = true; try{p.Kill();} catch{} if(tStart.Content.ToString() == "Stop") { richTextBox1.Document.Blocks.Add(new Paragraph(new Run("\nProces byl přerušen"))); Funkce.ZapisDoSouboru(menuZapis.IsChecked, "\r\nProces byl přerušen.\n"); richTextBox1.ScrollToEnd(); } }
public static void Vystup(object sender, DataReceivedEventArgs e) { mw.Dispatcher.BeginInvoke(DispatcherPriority.Background, (ThreadStart) delegate() { if (mw.zastaveno || mw.preruseno) { return; } mw.richTextBox1.Document.Blocks.Add(new Paragraph(new Run(e.Data))); Funkce.ZapisDoSouboru(mw.menuZapis.IsChecked, e.Data); mw.richTextBox1.ScrollToEnd(); }); }
void cbPrikaz_KeyDown(object sender, KeyEventArgs e){ if (e.Key == Key.Enter) { if (cbPrikaz.Text == "") return; if(tStart.Content.ToString() == "Spustit") Spustit.PrikazSpustit(); else { zastaveno = true; try{p.Kill();} catch{} richTextBox1.Document.Blocks.Add(new Paragraph(new Run("\nProces byl zastaven"))); Funkce.ZapisDoSouboru(menuZapis.IsChecked, "\r\nProces byl zastaven.\n"); richTextBox1.ScrollToEnd(); } e.Handled = true; }; }
void tStart_Click(object sender, RoutedEventArgs e){ Funkce.CbZapsat(cbPrikaz); CMD = false; if (cbPrikaz.Text == "" && !menuVkladat.IsChecked) return; if (tbPrikaz.Text == "" && menuVkladat.IsChecked) return; if(tStart.Content.ToString() == "Spustit") Spustit.PrikazSpustit(); else { zastaveno = true; try{p.Kill();} catch{} richTextBox1.Document.Blocks.Add(new Paragraph(new Run("\nProces byl zastaven"))); Funkce.ZapisDoSouboru(menuZapis.IsChecked, "\r\nProces byl zastaven.\n"); richTextBox1.ScrollToEnd(); tStart.Content = "Spustit"; } }
public static bool Prikaz(string prikaz, int pocet) { mw.preruseno = false; string parametr = ""; string program = ""; string prikaz0 = ""; string parametr0 = ""; prikaz0 = prikaz; prikaz = prikaz .Replace("§i", mw.pocitadlo.ToString()) .Replace("§cd", Directory.GetCurrentDirectory() + "\\"); if (pocet < mw.seznam_vybranych_s.Count()) { prikaz = Funkce.NactiSoubor(mw.seznam_vybranych_s[pocet], prikaz); } Funkce.ZapisDoSouboru(mw.menuZapis.IsChecked, "\r\n" + Directory.GetCurrentDirectory() + ">" + prikaz + "\r\n"); //najdi retezec v "zavorkach" Match najdi0 = Regex.Match(prikaz0, "(^\"[\\s\\S]*?\")"); Match najdi = Regex.Match(prikaz, "(^\"[\\s\\S]*?\")"); if (najdi0.Success) //zadany parametr { parametr0 = prikaz0.Remove(0, najdi0.Groups[0].Value.Length).TrimStart(); } else //jinak to rozdelit mezerou { string[] rozdel = prikaz0.Split(' '); parametr0 = prikaz0.Remove(0, rozdel[0].Length).TrimStart(); } if (najdi.Success) //upraveny program a parametr { parametr = prikaz.Remove(0, najdi.Groups[0].Value.Length).TrimStart(); program = najdi.Groups[0].Value; } else { string[] rozdel = prikaz.Split(' '); parametr = prikaz.Remove(0, rozdel[0].Length).TrimStart(); program = rozdel[0]; } //zjisti cestu programu ze souboru for (int i = 0; i <= mw.comboBox1.Items.Count - 1; i++) { string nazev = ""; try { nazev = Path.GetFileNameWithoutExtension(program).ToLower(); } catch { }; string c2 = mw.comboBox1.Items[i].ToString().ToLower(); if (nazev == c2) { program = "\"" + mw.seznam_programu[i] + "\""; break; } } //prejde o slozku vys if (prikaz == "cd.." | prikaz == "cd ..") { try { Directory.SetCurrentDirectory( Directory.GetParent( Directory.GetCurrentDirectory()).FullName); } catch { } mw.tbCesta.Text = Directory.GetCurrentDirectory(); mw.Soubory(mw.tbCesta.Text); return(true); } //prejde na jiny disk Match disk = Regex.Match(prikaz, "[a-zA-Z]:"); if ((disk.Success && Directory.Exists(prikaz))) { Funkce.CD(prikaz); Funkce.CbZapsat(mw.cbPrikaz); return(true); } //prejde na jinou slozku if (program == "cd") { if ((Directory.Exists(Directory.GetCurrentDirectory() + parametr))) { Directory.SetCurrentDirectory(Directory.GetCurrentDirectory() + parametr); } else if ((Directory.Exists(parametr))) { Directory.SetCurrentDirectory(parametr); } else { Spust("cmd", "/c cd " + parametr, parametr0); } mw.tbCesta.Text = Directory.GetCurrentDirectory(); mw.Soubory(mw.tbCesta.Text); return(true); } if (program.ToLower() == "zprava") { MessageBox.Show(parametr, "Zpráva", 0, MessageBoxImage.Information); Funkce.VlozitDoHistorie(program, parametr); Ukonceno(null, null); return(true); } if (program.ToLower() == "cmd") { Process proc = new Process(); proc.StartInfo.FileName = "cmd"; mw.tStart.Content = "Spustit"; Funkce.VlozitDoHistorie("cmd", ""); try { proc.Start(); } catch { } return(true); } string[] c_prikazy = { "dir", "del", "copy", "move", "md", "rd", "ren", "mklink", "erase", "md", "mkdir", "set", "if", "for", "goto", "start", "echo", "vol" }; foreach (string c_prikaz in c_prikazy) { if (program.ToLower() == c_prikaz) { program = "cmd"; parametr = "/c " + prikaz; parametr0 = "/c " + prikaz0; break; } } //dalsi specialni prikazy if (program.ToLower() == "exit" || program.ToLower() == "konec") { mw.Close(); return(true); } if (program.ToLower() == "napsat") { mw.tStart.Content = "Stop"; mw.richTextBox1.Document.Blocks.Add(new Paragraph(new Run(parametr))); mw.richTextBox1.ScrollToEnd(); Funkce.VlozitDoHistorie("napsat", parametr0); Ukonceno(null, null); return(true); } if (program.ToLower() == "cls" || program.ToLower() == "clear") { mw.richTextBox1.Document.Blocks.Clear(); Funkce.VlozitDoHistorie("cls", ""); Ukonceno(null, null); return(true); } Spust(program, parametr, parametr0); return(true); }