Вызов приложения WPF из консоли и ожидание завершения его выполнения?

У меня есть приложение WPF, и я хочу, чтобы пользователи вызывали (извне, через консоль, например, вызов .\MyApp.exe -argument), что приложение передает аргументы и продолжает выполнение в консоли только после завершения работы приложения WPF.

Проблема в том, что неконсольное приложение, вызываемое из экземпляра консоли, не останавливает выполнение консоли. Вызывается исполняемый файл, появляется приложение, но консоль может выполнять другие команды.

Предпочтительно, чтобы это происходило только в том случае, если пользователь передает специальный параметр, чтобы не удерживать выполнение, если только вызывает приложение без параметров.

Не уверен, что это возможно.


person Nicke Manarin    schedule 06.06.2021    source источник
comment
Кажется, я вообще не связан с WPF, не так ли?   -  person Corentin Pane    schedule 06.06.2021
comment
У меня есть приложение WPF, которое мне нужно, чтобы сделать его более удобным для среды командной строки.   -  person Nicke Manarin    schedule 06.06.2021
comment
То, как задается вопрос, делает его фактически не связанным с WPF. Вы спрашиваете о запуске exe из командной строки, не имеет значения, было ли приложение создано с помощью WPF или чего-то еще (см. только текущий ответ, а не о wpf)   -  person Corentin Pane    schedule 07.06.2021
comment
Мне это не кажется двусмысленным. Неконсольные приложения не демонстрируют поведение, о котором я спрашивал, а именно приостановку выполнения хоста консоли при внешнем вызове пользователем из cmd.exe или ps.exe. В любом случае, я собираюсь обновить вопрос.   -  person Nicke Manarin    schedule 07.06.2021
comment
@CorentinPane Думаю, я нашел то, что хотел. Я собираюсь проверить завтра: stackoverflow.com/questions/22988611/   -  person Nicke Manarin    schedule 07.06.2021
comment
Хорошо, дайте мне знать, если это сработает. Ваше уточнение мне кажется хорошим :)   -  person Corentin Pane    schedule 07.06.2021
comment
Вы можете P/Invoke to AttachConsole подключиться к любой существующей консоли. Если ваше приложение было запущено из пакетного файла, это заблокирует консоль, которая запустила вас, до тех пор, пока ваше приложение не будет называться FreeConsole. См. lastpixel.tv/win32-application-as-both-gui- и-консоль   -  person Bradley Grainger    schedule 07.06.2021
comment
Этот ответ также полезен: stackoverflow.com/a/494000/23633   -  person Bradley Grainger    schedule 07.06.2021