I came across this nifty application today called Process Explorer. I needed to delete a file but had to find out what application had a file Handle open because I kept getting the following error.
A file cannot be deleted if there exists any handle that is associated with it. Process explorer lets you view handles by a process. Process explorer also allows you to view Hardware Interrupts, Deferred Procedure Calls, and process parent/child relationships.
This is not the best way to find a handle when you are not sure what process has control. There is a feature to find a Handle or DLL at Find | Find Handle or DLL ... Ctrl+F.
Once the Handle is found you can close the correct application and delete the file in use. It is not good practice to delete the handle because the file may be in use and could lead to data corruption.
Another nice feature of the process explorer is the System Information. It extends the default Task Manger's Performance view.
This application is from Sysinternals, which was acquired by Microsoft in July of 2006. They have many other interesting system tools.