| 
   
Как заменить или переместить файл, используемый другим приложением
  
Автор: Marcus Neves
 
В Windows NT 4/2000 есть такая API функция, имеющая очень интересный последний аргумент. Функция позволяет также переименовывать указанный файл или директорию.
 
 
MoveFileEx(ExistingFN, NewFN, MOVEFILE_REPLACE_EXISTING или 
MOVEFILE_DELAY_UNTIL_REBOOT 
 
 |  
  
Если задать MOVEFILE_DELAY_UNTIL_REBOOT в dwFlags (характерно для Windows NT 4/2000), то в реестр будет занесена специальная информация и после перезагрузки Windows сотрёт или перепишет указанный файл
 
Параметры: 
 
  - ExistingFN указатель на строку (null-terminated) , которая содержит имя нужного нам файла или директории. 
 
  - NewFN указатель на строку (null-terminated), содкржащую новое имя файла, указанного ExistingFN. 
 
  - Флаг MOVEFILE_REPLACE_EXISTING указывает функции заменить, если файл ExistingFN уже существует. Если указать в NewFN - nil, ExistingFN будет стёрт. 
 
 
Пример: 
 
 
MoveFileEx('c:\winnt\system32\kernel32.dll', 'd:\winnt.bak\system32\kernel32.dll', 
MOVEFILE_REPLACE_EXISTING или MOVEFILE_DELAY_UNTIL_REBOOT 
 |  
  
  - Удаление существующего файла:
 
 
 
MoveFileEx('c:\winnt\system32\kernel32.dll', nil, 
MOVEFILE_REPLACE_EXISTING или MOVEFILE_DELAY_UNTIL_REBOOT
 |  
  
           |