Запуск exe с параметрами и ожиданием завершения работы

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
Нужно запустить файл с параметрами soft.exe foder input.txt и дождаться завершения.
Нашел когда то сниппет на форуме но не помню где
но не шарю как дописать туда параметры и вместо C:\blahblah\1.exe задать имя переменной
Подскажите

Код:
System.Diagnostics.ProcessStartInfo start =
      new System.Diagnostics.ProcessStartInfo();
start.FileName = @"C:\blahblah\1.exe";
start.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
var process = System.Diagnostics.Process.Start(start );
process.WaitForExit();
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
C#:
var file = project.Variables["Переменная1"].Value; // заносим сюда данные из переменной "Переменная1"
System.Diagnostics.ProcessStartInfo start =
      new System.Diagnostics.ProcessStartInfo();
start.FileName = file;
start.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
var process = System.Diagnostics.Process.Start(start );
process.WaitForExit();
 
  • Спасибо
Реакции: alekwuy

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
C#:
var file = project.Variables["Переменная1"].Value; // заносим сюда данные из переменной "Переменная1"
System.Diagnostics.ProcessStartInfo start =
      new System.Diagnostics.ProcessStartInfo();
start.FileName = file;
start.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
var process = System.Diagnostics.Process.Start(start );
process.WaitForExit();
как всегда выручаешь, как параметры передать?
 

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
Может еще что то знает как передать параметры?)
типа soft.exe -dir -file.txt ?
 

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
а если в Переменная1 записать строку soft.exe -dir -file.txt
не получается?

попробовал пока без параметров - чо та зависает на выполнении (проект как будто ожидает каких то данных и не завершается, хотя и ошибок в логе нет)

upload_2014-10-17_13-42-6.png
 
Последнее редактирование:
  • Спасибо
Реакции: alekwuy

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83

Irbis

Client
Регистрация
02.03.2014
Сообщения
195
Благодарностей
120
Баллы
43
Код:
System.Diagnostics.Process.Start("iexplore.exe", "www.google.ru");
 
  • Спасибо
Реакции: alekwuy и Sergodjan

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
Код:
System.Diagnostics.Process.Start("iexplore.exe", "www.google.ru");
можно подробнее?)



у меня сейчас вот такой код, но он не работает
Код:
var file = project.Variables["path"].Value; // заносим сюда данные из переменной "Переменная1"
var args = project.Variables["args"].Value;
System.Diagnostics.ProcessStartInfo start =
      new System.Diagnostics.ProcessStartInfo();
start.FileName = file;
start.Arguments = args;
start.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
var process = System.Diagnostics.Process.Start(start );
process.WaitForExit();
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
перезагрузил ПМ - 1 раз выполнился проект, но cmd.exe не запустился..
а второй раз уже не запускается - подвисает что то..
 
  • Спасибо
Реакции: alekwuy

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
у меня запускается но просто висит процесс в диспетчере
а сам софт не работает
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Код:
var file = project.Variables["path"].Value;
var args = project.Variables["args"].Value;
System.Diagnostics.Process.Start(file, args);
у меня вот так заработало..

upload_2014-10-17_14-29-46.png
 
  • Спасибо
Реакции: alekwuy

Irbis

Client
Регистрация
02.03.2014
Сообщения
195
Благодарностей
120
Баллы
43
у меня запускается но просто висит процесс в диспетчере
а сам софт не работает
Смотрите параметры, которые принимает программа. В коде выше должен запускаться браузер IE и открывать страницу www.google.ru.

Код, который вы используется тоже должен работать.
В переменной project.Variables["path"].Value нужно указать запускаемого имя приложения
project.Variables["args"].Value;
 
  • Спасибо
Реакции: alekwuy

Irbis

Client
Регистрация
02.03.2014
Сообщения
195
Благодарностей
120
Баллы
43
В переменную project.Variables["args"].Value - аргументы.
 
  • Спасибо
Реакции: alekwuy

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
у меня софт лежит рядом с шаблоном
на питоне)

python.py
аргументы dir filename.txt

удалось запустить только в переменной полный путь к файлу
Код:
var file = project.Variables["path"].Value;
var args = project.Variables["args"].Value;
System.Diagnostics.Process.Start(file, args);
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
у меня софт лежит рядом с шаблоном
на питоне)

python.py
аргументы dir filename.txt

удалось запустить только в переменной полный путь к файлу
Код:
var file = project.Variables["path"].Value;
var args = project.Variables["args"].Value;
System.Diagnostics.Process.Start(file, args);
да, нужен полный путь, видимо в системной переменной путь к обработчику питона не указан..
 
  • Спасибо
Реакции: alekwuy

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
не получается
запилил уже бантик
у в нем прописал запуск и параметры
если запускаю просто то работает
если запускаю через кубик тоже работает
но вот через код просто открывет и сразу закрывает
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
не получается
запилил уже бантик
у в нем прописал запуск и параметры
если запускаю просто то работает
если запускаю через кубик тоже работает
но вот через код просто открывет и сразу закрывает
может быть попробовать в конец батника команду more прописать?
или pause ..
 
  • Спасибо
Реакции: alekwuy

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
так батник работает
если его запускать без зенно или запускать с помощью "запуск программы" то все работает
но нужно подождать пока он закроется сам(
 
Последнее редактирование:

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
Нашел ошибку почему то бантики запускаются отсюда

C:\Program Files (x86)\ZennoLab\ZennoPoster Pro\Progs
 

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
скрипт на питоне не может найти файлы потому что они лежат рядом с ним
а выполняется все из другой папки
как то так
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
Нашел ошибку почему то бантики запускаются отсюда
C:\Program Files (x86)\ZennoLab\ZennoPoster Pro\Progs
потому что родительский процесс base.exe там находится

Код:
var process = new System.Diagnostics.Process {
   StartInfo = new System.Diagnostics.ProcessStartInfo { 
        UseShellExecute = false,
        RedirectStandardOutput = true,   
        RedirectStandardError = true,
        RedirectStandardInput = true,
        CreateNoWindow = true,
        FileName = "cmd.exe",
        WorkingDirectory = project.Directory+" // рабочая_папка",
        Arguments = "/c echo hellow world" // аргументы
    }
};

process.Start();
process.WaitForExit();

string output = process.StandardOutput.ReadToEnd();

process.Close();
process.Dispose();
 

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
с помощью костылей сделал
потому что родительский процесс base.exe там находится

Код:
var process = new System.Diagnostics.Process {
   StartInfo = new System.Diagnostics.ProcessStartInfo {
        UseShellExecute = false,
        RedirectStandardOutput = true,  
        RedirectStandardError = true,
        RedirectStandardInput = true,
        CreateNoWindow = true,
        FileName = "cmd.exe",
        WorkingDirectory = project.Directory+" // рабочая_папка",
        Arguments = "/c echo hellow world" // аргументы
    }
};

process.Start();
process.WaitForExit();

string output = process.StandardOutput.ReadToEnd();

process.Close();
process.Dispose();
СПАСИБО!
а можешь все данные сделать переменными
папку
софт который нужно запустить и аргументы?
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
FileName = project.Variables["executable"].Value,
WorkingDirectory = project.Variables["workdir"].Value,
Arguments = project.Variables["args"].Value
 
  • Спасибо
Реакции: alekwuy

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
говорит не может найти указанный файл
папку указал директорию проекта
указывал soft.py и soft.bat
оба лежат в директории проекта
 

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
exe запустил, но бантик и питон не получается
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
команда должна выглядеть так "cmd.exe /c soft.bat soft.py"
 
  • Спасибо
Реакции: alekwuy

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
а вот тут что должно быть?
FileName = project.Variables["executable"].Value,
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
  • Спасибо
Реакции: alekwuy

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)