Самый простой ответ на этот вопрос - добавить.
css
float: left;
codepen link: http://jsfiddle.net/dGHFV/3560/
Вы можете использовать планировщик окон для планирования задачи для удаления вашей программы через X секунд.
Командная строка: http://msdn.microsoft.com/en-us/library/bb736357 % 28VS.85% 29.aspx
Или API: http://msdn.microsoft.com/en-us/library/aa383608%28VS.85%29.aspx
Один из способов сделать это - использовать функцию MoveFileEx с флагом MOVEFILE_DELAY_UNTIL_REBOOT
и адресатом NULL
. Согласно документации, это:
регистрирует файл lpExistingFileName , который должен быть удален при перезапуске системы. Если lpExistingFileName ссылается на каталог, система удаляет каталог при перезапуске, только если каталог пуст.
blockquote>
Я решил эту проблему (используя Visual Basic), создав пакетный файл, который выполняется, пока процесс все еще запущен, ждет 1сек, поэтому программа может закрыть себя и удалить программу.
Возможно, вам понадобится чтобы изменить его для этого, удалите все в одной папке. После выполнения вашей задачи просто вызовите del()
, и он должен работать.
Sub del()
Dim file As System.IO.StreamWriter
file = My.Computer.FileSystem.OpenTextFileWriter("del.bat", True)
file.WriteLine("")
file.WriteLine("timeout 1")
file.WriteLine("echo Y | del *.*")
file.Close()
Process.Start("del.bat")
Me.Close()
End Sub
Вы можете запустить другое приложение, которое будет ждать завершения родительского процесса, а затем удалить его исполняемый файл.
process.start("cmd /c ping localhost -n 3 > nul & del filepath")
exit
заменить process.start любой командой, которую использует ваш язык программирования для запуска программ с аргументами
заменить путь к файлу путь к вашему exe
заменить exit командой для завершение вашей программы
Пока этот exe не будет в памяти, он не сможет удалить себя. Тем не менее, он может зарегистрировать в системе задачу по удалению себя после заданного промежутка времени, когда ожидается, что он завершит выполнение.
Это можно сделать в Linux. Вы обнаружите, что вообще невозможно удалить исполняемый файл в Windows. Тем не менее, вы можете удалить Windows EXE для следующей перезагрузки: http://www.howtodothings.com/computers/a1402-delete-a-running-exe.html
Если вы хотите, чтобы файл был удален после его запуска, вы можете просто попросить пользователя его удалить. Если причина, по которой вы хотите, это мера безопасности, то то, что вы делаете, ошибочно. Пользователь может обойти это, просто сделав копию файла первым.