My field techs requested that I let them know if a Patch would cause a reboot before the transfer of files. That way they could either go in and kill any loose threads (from clients holding onto a resource) or decide to patch later when the server might not be as mission-critical.
So, thinking that I'm pretty darn smart, I created a list with all the files in the Patch and run through them through a query to determine if any are Locked. If so, I throw up a dialog letting the user know what file(s) are locked and giving them a choice to reboot.
However, not all the files in the Patch get replaced every time. If the current version is the same as the new version there is no need. Therefore, sometimes I report that a reboot will be necessary when it really isn't.
What I really need to do, is to compare the Patch version to the current version of each file and then test for file locked. I know IS does this at file transfer time, but then it's too late to cleanly abort the installation. Also, the list that I create is just a manually updated string list, not an actual reference to the file in the Patch, which means version numbers would need to be updated manually too (yech!

Therefore what I need is
A) a way to reference the actual files in the Patch

C) Check the Patch version vs the Current version
D) If it's going to be replace, check them for FileLocked condition
I can do B & D, but A & C have me stumped.
Thanks for any help