Существует бесплатная программа MS / Sysinternals под названием маятник который может показать вам список файлов, ожидающих удаления / перемещения при перезагрузке.
Вы также можете посмотреть список ожидающих операций в следующем разделе реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
Операция API, которая делает это, называется MoveFileEx () с параметром MOVEFILE_DELAY_UNTIL_REBOOT.
Больше информации в это КБ.
К вашему сведению, чтобы вручную добавить рабочую запись в эту область реестра, вы можете сделать следующее:
Запустите REGEDT32 (W2K) или REGEDIT (WXP) и перейдите к: HKLM \ System \ CurrentControlSet \ Control \ Session Manager
W2K: изменить, добавить значение ..., тип данных: REG_MULTI_SZ, имя значения: PendingFileRenameOperations, ОК
WXP: Edit, New, Multi-String Value, [ввод] PendingFileRenameOperations
- В области данных введите "\ ?? \" + имя файла, которое нужно удалить. LFN можно вводить без заключения в кавычки. Чтобы удалить "C: \ Long Directory Name \ Long File Name.exe", введите следующие данные:
\ ?? \ C: \ Длинное имя каталога \ Длинное имя файла.exe
Затем нажмите ОК.
- «Имя файла назначения» - это пустая (нулевая) строка. Он вводится следующим образом:
W2K: Edit, Binary, выберите Data Format: Hex, щелкните в конце шестнадцатеричной строки, введите 0000 (четыре нуля), OK.
WXP: щелкните значение правой кнопкой мыши, выберите «Изменить двоичные данные», щелкните в конце шестнадцатеричной строки, введите 0000 (четыре нуля), ОК.
- Закройте REGEDT32 / REGEDIT и перезагрузитесь, чтобы удалить файл.
Из эта ветка.
Конечно, используя movefile легче, чем делать все это.