Запустить стороннее приложение и вернуть себе управление - C#
Формулировка задачи:
Консольное приложение запускает с параметром сторонний консольный процесс, который в свою очередь запускает нужное мне приложение. После запуска этого приложения запустившая его консоль остаётся висеть в процессах. Можно ли как-то после запуска этого приложения вернуть себе управление, чтобы закрыть эту консоль?
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.IO;
- using System.Diagnostics;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- const string rus = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя ";
- const string lat = "abvgdeYZzijklmnoprstufhcCWVXyxEUA_";
- string exe = System.Reflection.Assembly.GetExecutingAssembly().Location;
- string tut = Path.GetDirectoryName(exe);
- string sourse = Environment.GetCommandLineArgs()[1].ToLower();
- //string sourse = "ТУ_mem4_uuk.bit";
- string ext = Path.GetExtension(@sourse).ToLower();
- string dest = Path.GetFileName(@sourse);
- //string sourse = "непейводыизунитаза";
- foreach (char ch in dest)
- if (rus.Contains(ch))
- {
- char lch = lat[rus.IndexOf(ch)];
- dest=dest.Replace(ch, lch);
- }
- dest = tut + '\\' + dest;
- string impactPath = File.ReadAllLines(tut + '\\' + "impact.p")[0];
- File.Copy(sourse, dest, true);
- try
- {
- Process pr = new Process();
- pr.StartInfo.FileName = impactPath;
- switch (ext)
- {
- case ".jed":
- {
- pr.StartInfo.Arguments = "-j " + dest;
- break;
- }
- case ".bit":
- {
- pr.StartInfo.Arguments = "-b " + dest +" -mode sserial";
- break;
- }
- default:
- {
- pr.StartInfo.Arguments = "-j " + dest;
- break;
- }
- }
- pr.Start();
- }
- catch { };
- //Вот сюда уже не попадаю, так как запущенный мной процесс перехватывает управление
- Process[] impact = Process.GetProcessesByName("_impact");
- foreach (Process p in impact)
- p.Kill();
- }
- }
- }
Такшта вот.
Полезно иногда не получить сразу ответ на животрепещущий вопрос. Вынуждает посветить фонариком внутри черепушки. Кажется, слышал где-то выражение "многопоточные приложения". Собрал походную котомку, пошёл искать ответов.
Такшта, не поминайте лихом, если затеряюсь в дебрях собственного невежества.
Решение задачи: «Запустить стороннее приложение и вернуть себе управление»
textual
Листинг программы
- finally{
- Process[] impact = Process.GetProcessesByName("_impact");
- foreach (Process p in impact)
- p.Kill();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д