#c# #visual-studio #visual-studio-code
#c# #visual-studio #visual-studio-code
Вопрос:
Я хочу запустить консольное приложение (B) из другого консольного приложения (A). Но я хочу запустить консольное приложение (B) из другого окна консоли, а исходное окно (из консольного приложения A) закрыть.
Я попытался погуглить, но, похоже, ни у кого нет такой же проблемы. Я новичок в c #, я самоучка и мало что знаю об этом.
Кроме того, я не знаю, как запустить какое-либо приложение с помощью кода.
Спасибо за помощь и извините за мой английский: D
Ответ №1:
Пример из MSDN
// Start the child process.
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "ConsoleApplication.exe"; // Need full path of application
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
Комментарии:
1. Буквально ответ из учебника
2. Как это работает? Я не понимаю, что происходит в коде:(….. Спасибо за ответ! : D
Ответ №2:
Я хочу запустить консольное приложение (B) из другого консольного приложения (A). Но я хочу запустить консольное приложение (B) из другого окна консоли, а исходное окно (из консольного приложения A) закрыть.
Стандартный процесс.Вызов Start() должен выполнить эту работу.
Консольное приложение A:
public static void Main(string[] args)
{
Console.WriteLine("This is Console App 'A'...");
string fullPathToB = @"C:UsersmikesDocumentsVisual Studio 2017ProjectsCS_Console_Scratch2CS_Console_Scratch2binDebugConsoleAppB";
Process.Start(fullPathToB);
// this console app will close when we hit the end bracket for Main()
}
Консольное приложение B:
public static void Main(string[] args)
{
Console.WriteLine("This is Console App 'B'...");
Console.WriteLine("Press Enter to Quit");
Console.ReadLine();
}
Но вы увидите разные результаты в зависимости от того, как было запущено консольное приложение «A». Если вы дважды щелкните «A» в проводнике, окно консоли для «A» закроется, и вы увидите только «B».
Если вы уже находитесь в командной строке и запускаете «A», то эта консоль останется открытой, и вы увидите ее и «B» вместе. Оба сценария показаны ниже.
Вывод при запуске «A» из проводника:
Вывод при запуске «A» из существующей командной строки:
Комментарии:
1. Это действительно полезно, и я понимаю, что здесь происходит!! Но я вижу, что вы используете EXE-файлы, и я не знаю, как их создать. Спасибо за помощь: D
2.
.exe
s создаются всякий раз, когда вы СОЗДАЕТЕ или ЗАПУСКАЕТЕ приложение. Внутри папки вашего проекта вы найдете вложенную папку с именемbin
. Внутри этой вложенной папки будутdebug
и / илиrelease
вложенные папки (в зависимости от того, в каком режиме у вас работает Visual Studio). В этих двух папках вы найдете последнюю скомпилированную версию вашего.exe
файла для вашего приложения.