techie101: Well, this feature is not the main functionality of the Cleaner, but since there are quite a few people having problems after they have deleted some kind of virus (doesn't matter if using avast! or anything else) and now cannot start applications anymore, I decided to implement this feature. avast! Virus Cleaner is checking the associations anyway (if it finds a virus in memory or file), so it was not a big change.
However, it doesn't repair files that are not there - I don't master that kind of magic
When started, it reads the exefile (and other important types) associations from registry - and if it points to a file that doesn't exist (say, the association is
c:\badbadvirus.exe %1 %* and the file c:\badbadvirus.exe simply isn't there), it sets the association to default (which is
"%1" %* for an exefile).
I explained the starting of avast! Virus Cleaner in that case previously. There are more possibilities how to do it.
1. It is possible that only the exefile association is corrupted (points to thad c:\badbadvirus.exe). So, starting aswClnr.exe doesn't work. However, you can rename it to aswClnr.com and start it. Windows doesn't care much about the extension as long as it's an executable one - so even though it's an EXE file, you can rename it to .BAT and start.
2. Some viruses (e.g. Swen) associate on all possible executable extensions (for Swen, with the exception of .CMD on WinNT platform). So, whatever you rename the Cleaner executable to, you always get the message "Cannot find c:\badbadvirus.exe" when you try to start it.
Now, there are two possibilities - you can rename the Cleaner directly to the c:\badbadvirus.exe file. Now, starting
anything will start Cleaner instead.
Or, even easier - the error dialog ("Cannot find c:\badbadvirus.exe") has a box where you can enter the patch to the missing file. If you point it to the Cleaner executable instead, it should work as well - it changes the association to Cleaner, so Cleaner will be started.
kinggfx: Well, it's not a big mystery. Windows have a number of ways how to start executable. For usual user requests (clicking on a destop icon, starting from Start Menu, ...) - it takes the associations into account (technically, is uses ShellExecute function I guess). This way won't work when the association for the given file type is wrong. Some request, however, are handled without checking the association - the file is simple started (technically, it's CreateProcess call). This will work always. So, even when the associations are wrong, you are not completely helpless. In fact, when you can run Explorer, you can go to Folder Options and change some associations manually...