Способ с CreateProcess работает отлично на современных виндах, но есть одна проблема. Программа оставляет за собой \"мусор\" в виде сообственной директории.
Добавление:
Writeln(BatchFile,\'del \"\' + ExtractFilePath(ParamStr(0)) + \'\"\');
не решает проблему, т.к процесс cmd.exe которые запускается для выполнения ват-ника, запускается из директории приложения.
Я перенес создание бат-ника в директорию на уровень выше. И указал CreateProcess 8-й параметр вместо nil (Manual: if this parameter is NULL, the new process will have the same current drive and directory as the calling process), другую существующую директорию. Но все равно чтото еще держит и не дает убить эту :(
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.