コード例 #1
0
ファイル: Window1.xaml.cs プロジェクト: mz10/Command-prompt
		public Window1(){
			InitializeComponent();			
			ikonaUAC.ImageSource = Ikony.Ikona("user32.dll",-106,true);
			ikonaUloz.ImageSource = Ikony.Ikona("shell32.dll",258,true);
			ikonaNapoveda.ImageSource = Ikony.Ikona("shell32.dll",277,true);
			ikonaNastaveni.ImageSource = Ikony.Ikona("imageres.dll",109,true);	
			tbCesta.Text = vychozi_cesta;
			Directory.SetCurrentDirectory(vychozi_cesta);
            Funkce.CD(vychozi_cesta);
			richTextBox1.Document.Blocks.Add(
				new Paragraph(new Run(Environment.OSVersion.ToString() + "\r\n"
			)));
			
			if(Funkce.Admin()) 
				Title+= " - Admin práva";
			
			DispatcherTimer dt = new DispatcherTimer();
			dt.Tick += new EventHandler(Hodiny);
			dt.Interval = TimeSpan.FromSeconds(10);
			dt.Start();
            Predvolby.NactiNastaveni();
            Predvolby.NactiProgramy();
            Predvolby.NactiHistorii();
            Funkce.ZapisDatum();
            Funkce.CbZapsat(cbPrikaz);
        }		
コード例 #2
0
 public static void Zastav()
 {
     mw.pocitadlo        = 0;
     mw.prikazy_i        = 0;
     mw.ukladat_historii = true;
     mw.tbOpakovat.Text  = "1";
     mw.tStart.Content   = "Spustit";
     Funkce.CbZapsat(mw.cbPrikaz);
 }
コード例 #3
0
        public static void Spust(string program, string parametr, string parametr0)
        {
            bool   vysledek = false;
            string prikaz0  = (program + " " + parametr0).Trim();
            string prikaz   = (program + " " + parametr).Trim();

            if (mw.CMD)
            {
                CSpustitvCMD(prikaz);
                return;
            }

            mw.ukol = new Thread(() => {
                if (!CSpustit(program, parametr) && !CSpustit(prikaz, ""))
                {
                    string[] rozdel = prikaz.Split(' ');
                    string ccast    = "";
                    string pm       = "";
                    vysledek        = false;

                    foreach (string cast in rozdel)
                    {
                        ccast += cast + " ";
                        pm     = prikaz.Substring((ccast.Trim()).Length).Trim();
                        if (CSpustit(ccast.Trim(), pm))
                        {
                            vysledek = true;
                            break;
                        }
                    }
                }
                else
                {
                    vysledek = true;
                }

                mw.Dispatcher.BeginInvoke(DispatcherPriority.Send, (ThreadStart) delegate() {
                    if (!vysledek)
                    {
                        mw.richTextBox1.Document.Blocks.Add(
                            new Paragraph(new Run("Tento příkaz neexistuje: " + prikaz)));
                        Funkce.CbZapsat(mw.cbPrikaz);
                        mw.richTextBox1.ScrollToEnd();
                        mw.tStart.Content = "Spustit";
                    }
                    else
                    {
                        program = program.Replace("\"", "");
                        Funkce.VlozitDoHistorie(program, parametr0);
                    }
                });
            });

            mw.ukol.IsBackground = true;
            mw.ukol.Start();
        }
コード例 #4
0
ファイル: Window1.xaml.cs プロジェクト: mz10/Command-prompt
		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";
			}			
		}
コード例 #5
0
ファイル: Window1.xaml.cs プロジェクト: mz10/Command-prompt
		void cbPrikazPozadi_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e){
            Funkce.CbZapsat(cbPrikaz);
		}
コード例 #6
0
        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);
        }