Existe um programa gratuito MS / Sysinternals chamado pendmoves que pode mostrar a lista de arquivos aguardando para serem excluídos / movidos na reinicialização.
Você também pode consultar a seguinte chave do Registro para obter uma lista de operações pendentes:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
A operação da API que faz isso é chamada MoveFileEx () com a opção MOVEFILE_DELAY_UNTIL_REBOOT.
Mais informações em este KB .
FYI, para adicionar manualmente uma entrada de trabalho a essa área do registro, você pode fazer o seguinte:
Start REGEDT32 (W2K) or REGEDIT (WXP) and navigate to: HKLM\System\CurrentControlSet\Control\Session Manager
W2K: Edit, Add Value..., Data Type: REG_MULTI_SZ, Value Name: PendingFileRenameOperations, OK
WXP: Edit, New, Multi-String Value, [enter] PendingFileRenameOperations
- In the Data area, enter "\??\" + filename to be deleted. LFNs may be entered without being embedded in quotes. To delete "C:\Long Directory Name\Long File Name.exe", enter the following data:
\??\C:\Long Directory Name\Long File Name.exe
Then press OK.
- The "destination file name" is a null (zero) string. It is entered as follows:
W2K: Edit, Binary, select Data Format: Hex, click at the end of the hex string, enter 0000 (four zeros), OK.
WXP: Right-click the value, choose "Modify Binary Data", click at the end of the hex string, enter 0000 (four zeros), OK.
- Close REGEDT32/REGEDIT and reboot to delete the file.
De este tópico
É claro que usar movefile é mais fácil do que fazer tudo isso.