Запуск консольной программы через C#

bodya97

Client
Регистрация
15.09.2018
Сообщения
121
Благодарностей
6
Баллы
18
Добрый день. Искал по форуму но так и не нашел подходящий вариант.

В общем есть консольная программа которую нужно запустить и выполнить действия, а именно нажать цифру 1

За помощь буду благодарен.
 

Вложения

Brabus_bots

Client
Регистрация
13.04.2019
Сообщения
783
Благодарностей
541
Баллы
93
Добрый день. Искал по форуму но так и не нашел подходящий вариант.

В общем есть консольная программа которую нужно запустить и выполнить действия, а именно нажать цифру 1

За помощь буду благодарен.
Речь про Console.ReadLine() или вопрос о другом?
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 238
Благодарностей
671
Баллы
113
Добрый день. Искал по форуму но так и не нашел подходящий вариант.

В общем есть консольная программа которую нужно запустить и выполнить действия, а именно нажать цифру 1

За помощь буду благодарен.
Вообще есть кубик для запуска программы с параметрами, так и называется "Запуск программы" в пункте c# в менюшке, если хочется запустить что то прям именно на c# то эт примерно так выглядит

C#:
    System.Diagnostics.Process process = new System.Diagnostics.Process();
    process.StartInfo.FileName = @"путь к эксешнику";
    process.StartInfo.Arguments = "какие то аргументы";
    process.Start();
    process.WaitForExit();
 

bodya97

Client
Регистрация
15.09.2018
Сообщения
121
Благодарностей
6
Баллы
18
System.Diagnostics.Process process = new System.Diagnostics.Process(); process.StartInfo.FileName = @"путь к эксешнику"; process.StartInfo.Arguments = "какие то аргументы"; process.Start(); process.WaitForExit();
Но я не знаю как прописать аргументы
 

bodya97

Client
Регистрация
15.09.2018
Сообщения
121
Благодарностей
6
Баллы
18

bodya97

Client
Регистрация
15.09.2018
Сообщения
121
Благодарностей
6
Баллы
18
Через кубик открывается, но после открытия как мне сделать чтобы автоматически ввелась нужная мне цифра в консоль
 

Вложения

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 498
Благодарностей
3 364
Баллы
113

bodya97

Client
Регистрация
15.09.2018
Сообщения
121
Благодарностей
6
Баллы
18

bodya97

Client
Регистрация
15.09.2018
Сообщения
121
Благодарностей
6
Баллы
18

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 760
Благодарностей
1 432
Баллы
113
Вот что думает по этому поводу ChatGPT:

123096

C#:
using System;
using System.Diagnostics;
using System.IO;

class Program
{
    static void Main()
    {
        // Создаем новый процесс
        Process process = new Process();
        
        // Указываем путь к исполняемому файлу
        process.StartInfo.FileName = @"путь к эксешнику";
        
        // Указываем аргументы, если они есть
        process.StartInfo.Arguments = "какие то аргументы";
        
        // Перенаправляем стандартный ввод, вывод и ошибки
        process.StartInfo.RedirectStandardInput = true;
        process.StartInfo.RedirectStandardOutput = true;
        process.StartInfo.RedirectStandardError = true;
        
        // Указываем, что консольное окно не должно отображаться
        process.StartInfo.UseShellExecute = false;
        process.StartInfo.CreateNoWindow = true;
        
        // Запускаем процесс
        process.Start();
        
        // Получаем поток для записи в стандартный ввод
        StreamWriter sw = process.StandardInput;
        
        // Записываем нужную цифру (например, 5)
        sw.WriteLine("5");
        
        // Закрываем поток ввода
        sw.Close();
        
        // Читаем и выводим результаты работы процесса (опционально)
        string output = process.StandardOutput.ReadToEnd();
        string error = process.StandardError.ReadToEnd();
        
        // Ожидаем завершения процесса
        process.WaitForExit();
        
        // Выводим результат работы процесса
        Console.WriteLine("Output: " + output);
        Console.WriteLine("Error: " + error);
    }
}
123097

Код не проверял, так как мне лень писать тестовую консольную прогу. Ну и для кубика C# юзинги не указываем внутири.

У нас сейчас в коде от ChatGPT так: Process process = new Process(); а в кубике будет так: System.Diagnostics.Process process = new System.Diagnostics.Process(); Если понимаете в C# думаю адаптировать код под зенку труда не составит.
 

bodya97

Client
Регистрация
15.09.2018
Сообщения
121
Благодарностей
6
Баллы
18
Если понимаете в C#
Проблема в том что не понимаю)

System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = @"C:\Users\Administrator\Desktop\unik\unik.exe";
process.Start();

StreamWriter streamWriter = process.StandardInput;
if (streamWriter.BaseStream.CanWrite)
{
streamWriter.WriteLine("2");
}
streamWriter.Close();
process.WaitForExit();
Вот этим кодом запускается и крашит
 

bodya97

Client
Регистрация
15.09.2018
Сообщения
121
Благодарностей
6
Баллы
18
System.Diagnostics.Process process = new System.Diagnostics.Process(); Если понимаете в C# думаю адаптировать код под зенку труда не составит.
Сделал такой код, но не работает. Даже не открывает консоль

using System;
using System.Diagnostics;
using System.IO;

System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = @"C:\Users\Administrator\Desktop\unik\unik.exe";
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
// Запускаем процесс
process.Start();

// Получаем поток для записи в стандартный ввод
StreamWriter sw = process.StandardInput;
// Записываем нужную цифру (например, 5)
sw.WriteLine("2");
// Закрываем поток ввода
sw.Close();
// Ожидаем завершения процесса
process.WaitForExit();
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 498
Благодарностей
3 364
Баллы
113
  • Спасибо
Реакции: bodya97

bodya97

Client
Регистрация
15.09.2018
Сообщения
121
Благодарностей
6
Баллы
18

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