Запустить стороннее приложение и вернуть себе управление - 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(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д