DIR with appropriate parameters is doing a very good job. I use the method you have written before and after installation of an application to see the difference.
A small batch file executes several times the DIR command with /s and some other parameters for some special directories (program files, Windows, Documents and Setttings, etc.). Which parameters are needed depends on the OS. The output of the DIR commands is captured to text files. Additionally whole registry is exported with Regedit in the batch file. The batch file appends the text I enter when starting it to every file name. So I can use the batch file before an installation and after it (several times if necessary).
Additionally I have written an UltraEdit macro which deletes all data from the DIR output files which are not needed for the final compare with UltraCompare.
Well, I know there are also several tools which can be used to create directory listings. Sometimes I use my file manager Total Commander to create dynamically a list of directories and their subdirectories. But for capturing the changes of an installation I always use the batch file, the macro and UltraCompare.
I have not found any tool which can protocol really all changes done by an installation because they often don't wait until
- the Windows is rebooted if that is necessary,
- the application is first time started,
- then configured by me,
- I have used as many functions as possible
- and finally closed.
This is the time to create the snapshot after "installation". Then the tool should know which changes are caused by Windows itself and which by the application installation, execution, configuration and usage. I think, no program can do this 100% perfect. But I can do it with my self made logs and my brain which is better as every program can be for this task.
Very interesting is always what remains after uninstall with the original uninstaller in comparison with what I have logged with this method was really created or added. The uninstallers always remove only which was created by the installer and nearly never what was created by the program itself after installation.