![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Обновление файла после перезагрузки системыDelphi , ОС и Железо , Компьютер
Автор: Dimka Maslov { **** UBPFD *********** by delphibase.endimus.com **** >> Данная процедура настраивает систему для обновления файлов после перезагрузки. TargetFileName - имя файла, содержиоме которого при перезагрузке будет заменено на содержимое файла, имя которого укзаывается в параметре SourceFileName. Если первый аргумент процедуры представляет собой пустую строку, при перезагрузке файл SourceFileName будет удалён. Зависимости: Windows Автор: Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург Copyright: Dimka Maslov Дата: 18 ноября 2002 г. ***************************************************** } procedure BootReplaceFile(TargetFileName, SourceFileName: string) var WinInitName: string; P: PChar; procedure InternalGetShortPathName(var S: string); begin UniqueString(S); GetShortPathName(PChar(S), PChar(S), Length(S)); SetLength(S, StrLen(@S[1])); CharToOEM(PChar(S), PChar(S)); end; begin if Win32Platform = VER_PLATFORM_WIN32_NT then begin if TargetFileName <> '' then P := PChar(TargetFileName) else P := nil; MoveFileEx(PChar(SourceFileName), P, MOVEFILE_DELAY_UNTIL_REBOOT or MOVEFILE_REPLACE_EXISTING); end else begin SetLength(WinInitName, MAX_PATH); GetWindowsDirectory(@WinInitName[1], MAX_PATH); SetLength(WinInitName, StrLen(@WinInitName[1])); WinInitName := IncludeTrailingBackslash(WinInitName) + 'WININIT.INI'; if TargetFileName = '' then TargetFileName := 'NUL' else InternalGetShortPathName(TargetFileName); InternalGetShortPathName(SourceFileName); WritePrivateProfileString('Rename', PChar(TargetFileName), PChar(SourceFileName), PChar(WinInit)); end; end; Пример использования: // После перезагрузки содержимое первого файла будет заменено на // содержимое второго файла, а второй файл будет удалён BootReplaceFile('c:\Program Files\proga.exe', 'c:\temp\proga.exe'); // Указанный файл будет удалён после перезагрузки BootReplaceFile('', 'c:\temp\proga.exe'); Программный процесс Программный процесс включает в себя два вложенных процесса:
Пример использования процесса
Важно отметить, что функция Альтернативное решение могло бы заключаться в использовании функции Процедура BootReplaceFile позволяет обновлять файлы после перезагрузки системы, заменяя содержимое одного файла на содержимое другого или удаляя файл полностью. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |