Exemplo n.º 1
0
 private void RunCommand()
 {
     if (Command.Trim() != String.Empty)
     {
         ProcessCommand com = RunProcess.GetCommandAndArguments(Command);
         if (com.IsWrong())
         {
             lblCmdMessage.Text = "Ошибка в команде " + Command;
         }
         else
         {
             if (RunProcess.OpenProcess("\"" + com.Command + "\"", com.Arguments, false))
             {
                 lblCmdMessage.Text = "Команда " + Command + " выполнена";
             }
             else
             {
                 lblCmdMessage.Text = "Команда " + Command + " не выполнена";
             }
         }
     }
     else
     {
         lblCmdMessage.Text = "";
     }
 }
Exemplo n.º 2
0
        public static ProcessCommand GetCommandAndArguments(string ca)
        {
            ProcessCommand ret = new ProcessCommand();

            ca = ca.Trim();
            if (ca.StartsWith("\"")) //если строка стартовала с кавычки - ищем вторую, посреди команда
            {
                //вытащили команду
                int endc = ca.LastIndexOf('"');
                if (endc == 0)
                {
                    return(ret);
                }
                ret.Command = ca.Substring(1, endc - 1);
                //и параметры
                ret.Arguments = ca.Substring(endc + 1, ca.Length - endc - 1).Trim();
            }
            else //иначе ищем первый пробел
            {
                int endc = ca.IndexOf(' ');
                if (endc == -1) //команда без аргументов
                {
                    ret.Command   = ca;
                    ret.Arguments = string.Empty;
                }
                else //с аргументами
                {
                    ret.Command   = ca.Substring(0, ca.Length - endc + 1);
                    ret.Arguments = ca.Substring(endc + 1, ca.Length - endc - 1);
                }
            }

            return(ret);
        }