4seasons
Gold Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору dneprcomp Спасибо за ссылки, но оказалось, что я и так все сделал правильно и ничего нового в них не оказалось. Оказывается запуск процесса через Код: Process.Start("notepad.exe") Process.GetCurrentProcess.Kill() | или через Код: retValue = CreateProcess("c:\\windows\\system32\\NotePad.exe", Nothing, IntPtr.Zero, IntPtr.Zero, False, 0, IntPtr.Zero, Nothing, sInfo, pInfo) Process.GetCurrentProcess.Kill() | дает один и тот же результат, а именно: родительский процесс освобождается и его программу даже можно удалить, только проблема в том, что дочерний процесс NotePad.exe оказывается привязанным к папке в которой находилась родительская программа, и пока дочерний процесс запущен, с этой папкой ничего поделать нельзя, ни переименовать, ни удалить, а это похоже уже никак не преодолеть. PS Правда это уже мелочи, просто на пару файловых операций придется сделать больше. Вместо того, чтобы удалить старую папку и на её место распаковать новую, придется удалять из неё старое содержимое, а затем копировать новое. | Всего записей: 5509 | Зарегистр. 31-05-2009 | Отправлено: 12:47 16-10-2018 | Исправлено: 4seasons, 13:24 16-10-2018 |
|