Ответ 1
Мне кажется, вам нужно создать промежуточный процесс, который, в свою очередь, порождает two.exe
. Затем вам нужен промежуточный процесс для немедленного завершения, после чего нарушается связь между исходным процессом и two.exe
.
Я пытаюсь выполнить 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 таким образом?
Мне кажется, вам нужно создать промежуточный процесс, который, в свою очередь, порождает two.exe
. Затем вам нужен промежуточный процесс для немедленного завершения, после чего нарушается связь между исходным процессом и two.exe
.
Хорошо, не очень приятное решение... но успешно протестировано; o)
ShellExecute(0, 'open', 'cmd',
PChar('/C start "" "' + Application.ExeName + '"'), nil, SW_HIDE);
Первый запускается вручную... его ребенок с обычным звонким звонком... Последний, с трюком squlexecute +...