- Регистрация
- 26.01.2019
- Сообщения
- 44
- Благодарностей
- 9
- Баллы
- 8
Сразу к сути
Есть у меня бат-файл для скачивания прямого эфира из Periscope.tv (Линк на сам батник на github)
У основного батника Start.cmd есть зависимые - download.cmd и другие
В чем собственно проблема..
При выполнении экшна "Запуск программы" = эти зависимые батники читаются
Но как только я запускаю батник через шарп (код ниже приложу) то пишет , что файл download.cmd отсутствует
Так же ввожу параметры в этот батник через AutoIt
Подскажите как запустить батник, чтобы он воспринимал зависящие батники от него, чтобы я в итоге уже смог спокойно манипулировать с PID приложения и закрывать по надобности
Есть у меня бат-файл для скачивания прямого эфира из Periscope.tv (Линк на сам батник на github)
У основного батника Start.cmd есть зависимые - download.cmd и другие
В чем собственно проблема..
При выполнении экшна "Запуск программы" = эти зависимые батники читаются
Но как только я запускаю батник через шарп (код ниже приложу) то пишет , что файл download.cmd отсутствует
Код запуска:
string fileName = project.Directory + "\\Start.cmd"; // путь к файлу или имя exe'шника (напр, cmd.exe)
string arguments = @""; // параметры запуска
bool windowStyle = false; // true - не показывать окно процесса, false - показывать окно процесса
bool getProcessId = true; // true - получить ID процесса, false - не получать ID процесса
bool waitForExit = false; // true - ждать завершения работы, false - не ждать завершения работы
int timeOut = 10000; // таймаут выполнения, в миллисек
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = fileName;
process.StartInfo.Arguments = arguments;
if (windowStyle)
process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
else
process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized;
process.Start();
if (getProcessId)
project.Variables["processId"].Value = process.Id.ToString(); // получаем ID процесса (создать переменную проекта processId)
if (waitForExit)
process.WaitForExit(timeOut);
Так же ввожу параметры в этот батник через AutoIt
Код вставки параметров в батник:
var handle = AutoIt.AutoItX.WinGetHandle("Администратор: Periscope video downloader v2.1.1");
AutoIt.AutoItX.WinActivate(handle);
AutoIt.AutoItX.ControlGetHandle(handle);
Thread.Sleep(1000);
AutoIt.AutoItX.Send(project.Variables["username_url"].Value, 0); // переменная с ссылкой
AutoIt.AutoItX.Send("{ENTER}", 0); // подтверждаем
Thread.Sleep(1000);
AutoIt.AutoItX.Send(project.Variables["convert_mp4_type"].Value, 0); // подтверждаем
AutoIt.AutoItX.Send("{ENTER}", 0); // подтверждаем
Thread.Sleep(1000);
AutoIt.AutoItX.Send("0", 0); // по умолчанию не ротируем
AutoIt.AutoItX.Send("{ENTER}", 0); // подтверждаем
Thread.Sleep(1000);