Thursday 31 May 2012

How to force uninstall a program you cannot uninstall

At one point or another this happens to every computer user in the world: You install a program, find out that you don't like it, or need it, or that it's plain useless for the task you wanted to use it for, and you want to uninstall it. So you open up the Windows Add/Remove tool, click the button to uninstall the program... and find out that you cannot uninstall the program. In this article I will try to explain how to force uninstall a program, that you cannot uninstall using the Windows Add/Remove tool. Before that, however, I will try to explain what happens during installation.



What you need to know to uninstall a program manually

There are several things that happen during the installation of a program. First, of course, is the copying of files to the specified program folder (which is usually somewhere inside the Program Files folder). Also some files such as shared libraries (.dll files) can be copied into a folder inside Program Files called Common Files and some files such as drivers or shared libraries (again) are copied into the ‘WINDOWS\System32' and‘WINDOWS\System32\drivers'folders. After that the installer makes some changes inside the windows registry. The windows registry is a unified place where all the settings for programs and for windows itself are stored. The installer can make changes inside the registry for several reasons. For example if a shared library needs to be registered. Or if certain types of files need to be associated with the program being installed, so that the user could open them (e.g. if you install Microsoft Word, then you will be able to open Microsoft Word documents). After this is done, a key is added to the windows registry in a place where the Windows Add/Remove tool looks for installed programs. During the installation all these operations are logged in a special file (e.g. setup.log), and the installation program usually puts that file inside the application's folder along with the uninstaller. When a user tries to remove a program through the Add/Remove tool, windows looks for the registered uninstaller inside the registry, and executes it. The uninstaller goes through the log file and undoes all the changes done during installation. That is, it deletes all the files that have been copied, all the registry keys the installer created etc.
However, if there is no log file, or if there is no record of the changes made to the registry the uninstaller might fail to uninstall the program, and it will stay there untill it is removed by other means.

So if a program won't uninstall, how do you perform a force uninstall?

Well, if you know how to work with the windows registry, you probably can perform a manual force uninstall.
Before I go into detail about how to do this manually, I'd like to say that this is pretty advanced stuff, and if you're not a power user, then perhaps you should consider using specialized software such as the Perfect Uninstaller which allows you to do this in just a few clicks.
If you are a power user, then let's continue. First, let's see how to remove the program from the list of installed programs. To do that you need to open the registry browser:
  1. Click Start and choose Run in the menu (If you're using Windows Vista then press Win+R on your keyboard).
  2. Type regedit and hit Enter.
  3. On the left side is the registry settings tree, use it to go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
  4. Inside that key you'll find a lot of keys that belong to different programs. Some are named after the program's name, others as a mix of numbers and letters that makes no sense. Look through each of them until you find one that has the key DisplayName (on the right) with your program's name in it.
  5. Notice the key UninstallString - this key points to the uninstall program, and the log file usually resides in the same folder as that program.
  6. If you delete the key in which you've found the DisplayName key with the value equal to your program's name, then your program won't appear on the Add/Remove programs list.
Some programs create new entries in the registry to store their configuration options, these entries can usually be found in the HKEY_CURRENT_USER\Software or in HKEY_LOCAL_MACHINE\SOFTWARE - look for the program name or the name of the company that made the software. Don't delete Microsoft though - that contains Windows settings as well.
Next we have to find all the files that have been copied. Open the folder in which the uninstall program should be, and look for files which are named uninstal.log or setup.log or something similar. The list of files that have been installed is inside this file, you can open it in your notepad and find all of the files that have been copied onto your system. Delete the files and you'll get rid of the program almost fully.
Again, I'd like to stress that if you're new to the windows registry and all of this stuff, and if you don't feel like experimenting with your computer, then, again, please consider using either the Perfect Uninstaller or similar software, I do not want to be responsible for breaking your computer.

Sunday 27 May 2012

How to recover a corrupt BIOS


Solution 1: Boot-block BIOS
Modern motherboards have a boot-block BIOS. This is small area of the BIOS that doesn't get overwritten when you flash a BIOS. The boot-block BIOS only has support for the floppy drive. If you have a PCI video card you won't see anything on the screen because the boot-block BIOS only supports an ISA videocard.
Award: The boot-block BIOS will execute an AUTOEXEC.BAT file on a bootable diskette. Copy an Award flasher & the correct BIOS *.bin file on the floppy and execute it automaticly by putting awdflash *.bin in the AUTOEXEC.BAT file.
AMI: The AMI boot-block BIOS will look for a AMIBOOT.ROM file on a diskette. Copy and rename the correct BIOS file on the floppy and power up the PC. The floppy doesn't need to be bootable. You will see the PC read the floppy, after about 4 minutes you will hear 4 beeps, this means the transfer is done. Reboot the PC and modify the CMOS for your configuration.
Solution 2: Get a new BIOS chip
  1. Contact your motherboard manufacturer to see if they sell BIOS chips. Some motherboard manufacturers send them for free.
  2. Contact a company that sells pre-flashed chips, like Unicore SoftwareFlashBIOS.ORGBadFlash or BiosWorld
Solution 3: Hot-swapping
Note: I'm not responsible for any damage this method may do to you or your computer !
  1. Replace the corrupt chip by a working one. The best option is to take the working BIOS chip from a motherboard which has the same chipset although that's not absolutely necessary. It just has to give you a chance of booting into DOS. Before pulling the working BIOS chip out of it's original motherboard, set the System BIOS cacheable option in the BIOS to enabled.
  2. After you have put the working BIOS in the motherboard with the corrupt BIOS boot the system to DOS (with a floppy or HD).
  3. Now replace (while the computer is powered on) the working BIOS chip with the corrupt one.
  4. Flash an appropriate BIOS to the corrupt BIOS and reboot.
Note: Use a flasher from MRBIOS. They are known to work best. You can find them at ftp://ftp.mrbios.com
Solution 4: (for Intel motherboards)
  1. Change Flash Recovery jumper to the recovery mode position (not all products have this feature)
  2. Install the bootable upgrade diskette into drive A:
  3. Reboot the system
  4. Because of the small amount of code available in the non-erasable boot block area, no video is available to direct the procedure. The procedure can be monitored by listening to the speaker and looking at the floppy drive LED. When the system beeps and the floppy drive LED is lit, the system is copying the recovery code into the FLASH device. As soon as the drive LED goes off, the recovery is complete.
  5. Turn the system off
  6. Change the Flash Recovery jumper back to the default position
  7. Leave the upgrade floppy in drive A: and turn the system on
  8. Continue with the original upgrade