Подтвердить что ты не робот

Как я могу предотвратить "завершение дерева процессов" от прекращения запуска моих программ?

Я пытаюсь выполнить EXE 'two.exe' из другого приложения 'one.exe' в Delphi XE2, используя ShellExecute.

ShellExecute(0, 'open', 'two.exe', nil, nil, SW_NORMAL);

Он отлично работает, но всякий раз, когда я завершаю приложение "one.exe" (родительское приложение) из вкладки процесса диспетчера задач, используя опцию "end process tree", приложение "two.exe" также прекращается.

Как я могу предотвратить завершение моего приложения ShellExecuted таким образом?

4b9b3361

Ответ 1

Мне кажется, вам нужно создать промежуточный процесс, который, в свою очередь, порождает two.exe. Затем вам нужен промежуточный процесс для немедленного завершения, после чего нарушается связь между исходным процессом и two.exe.

Ответ 2

Хорошо, не очень приятное решение... но успешно протестировано; o)

ShellExecute(0, 'open', 'cmd', 
  PChar('/C  start "" "' + Application.ExeName + '"'), nil, SW_HIDE);

enter image description here

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

fooobar.com/info/402875/...