Вызовите консольное приложение, не дожидаясь его - PullRequest
0 голосов
/ 04 июня 2018

Я разрабатываю приложение Delphi, которое вызывает консольное приложение .net в режиме скрытия, но проблема заключается в следующем: когда я закрываю свое приложение delphi, консольное приложение также закрывается, даже используя ShellExecute без указания ожидания SingleObject.

Я попробовал тот же самый вызов Shell для Windows Calc, поэтому теперь, даже когда я закрываю свое приложение, Calc остается открытым, и это поведение, которое я ищу.

Кто-то знает, еслиможно вызвать консольное приложение и оставить его независимым от родительского процесса и как это сделать, чтобы оно не закрывалось при закрытии основного приложения?

1 Ответ

0 голосов
/ 04 июня 2018

Проблема в том, что дочерний процесс подключается к консоли родительского процесса.Когда родитель закрывается, консоль закрывается, забирая ребенка с собой.

Решите это, предоставив дочернему процессу собственную консоль.Используйте CreateProcess, передавая CREATE_NEW_CONSOLE флаг создания процесса.Вы также захотите передать CREATE_NO_WINDOW, чтобы не показывать новое окно консоли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...