Archive for the 'Errors' Category

Fixing Windows Explorer Problems Part 2

Sunday, July 15th, 2007

Windows Explorer is the executable that serves as the interface to the Windows operating system and as such it has its share of problems. This is the second article in a series that will deal with various Windows Explorer related issues.

Windows Says You Must Re-Install

After starting your computer in Windows 98 or Me, you may see a blank desktop and get an error message like this:

Error loading EXPLORER.EXE. You must reinstall Windows.
Explorer.exe [program_name]

where [program_name] is the name of a program.

After receiving the error your computer may hang or restart. You may also see this behavior in Safe Mode. This happens when Windows Explorer is set to run a program automatically on startup which is missing or damaged. Sometimes this can be a virus or Trojan horse.To fix the problem, you will need to edit the System.ini file and remove the program. You should also scan your computer with anti-virus and anti-spyware software. Follow these steps to repair Windows:

  1. Use a startup disk to boot to a command prompt. If you don’t have a startup disk you will have to get one made on another computer. If no one you know is running Windows 98 or Me, you can visit www.bootdisk.com to make a boot disk on another computer.
  2. Type C: and press ENTER at the command prompt.
  3. Change to the Windows directory by typing CD \Windows and pressing ENTER.
  4. Type Edit System.ini and press ENTER to edit the System.ini file.
  5. Using the arrow keys, find the line starting with shell=Explorer.exe, in the [boot] section of the System.ini file.
  6. Insert a semicolon in front of the test, so the line looks as follows:

    ;shell=Explorer.exe [program_name]

  7. Using the arrow keys, move to the end of the line and press Enter to insert a new blank line.
  8. Type Shell=Explorer.exe on the new line. The file should now read as follows:

    shell=Explorer.exe [program_name]
    Shell=Explorer.exe

  9. Save the file by pressing ALT+F, then S.
  10. Exit by pressing ALT+F, then X.
  11. Remove the startup disk and restart.

Windows XP Quits When You View My Computer

While trying to use Windows Explorer to view items under My Computer, you may get an error if the Folders Explorer Bar is turned on:

Windows Explorer has encountered a problem and needs to close. We are sorry for the inconvenience. Please tell Microsoft about this problem.

This can happen if you have installed programs from the Kodak Picture Software CD version 1.3 or earlier, like Kodak EasyShare: Camera Connection, Picture Transfer, and Picture Software. Removing these programs using Add/Remove Programs in the Control Panel will fix the problem.

Windows Explorer Quits When You Map a Network Drive

When you try to map a drive to a network share or Web location using Windows Explorer, Windows Explorer may exit with one of the following errors:

Windows XP:

Explorer.exe has encountered a problem and needs to close. We are sorry for the inconvenience.

Windows 2000:

Access Violation

Explorer.exe has generated errors and will be closed by Windows. You will need to restart the program. An error log is being created.

This can happen if the length of the mapped network drive name exceeds 300 characters. You can fix this by installing the latest service pack for Windows XP or 2000:

Windows XP:

http://www.microsoft.com/windowsxp/sp2/default.mspx

Windows 2000:

http://www.microsoft.com/windows2000/downloads/servicepacks/sp4/default.mspx

Fixing Windows Explorer Problems Part 1

Friday, July 13th, 2007

Windows Explorer is the executable that serves as the interface to the Windows operating system and as such it has its share of problems. This is the first article in a series that will deal with various Windows Explorer related issues.

Thumbnail View Error

When trying to view the contents of a folder using the Thumbnail view, you may receive one of the following error messages:

  • EXPLORER caused an invalid page fault in module THUMBVW.DLL at 015f:799eaee4
  • EXPLORER caused an invalid page fault in module KERNEL32.DLL at 015f:bff9d709

This occurs when the Thumbs.db file (the file that contains thumbnails for a folder) in the folder is corrupted. To fix this problem, follow these steps:

  1. Be sure that you are able to view hidden files. From the View menu in Windows Explorer, click Folder Options. Select the View tab, click Show All Files, and then click OK.
  2. Delete the Thumbs.db file in the folder.If an error message displays, saying access is denied, then do one the following:
    1. Close Windows Explorer, and then empty the Recycle Bin.
    2. In Windows Explorer, click another folder to view its contents, and then empty the Recycle Bin.
  3. Re-create the Thumbs.db file by clicking on the folder whose contents you are trying to view in Microsoft Windows Explorer, and then click Thumbnails on the View menu.

Windows Explorer is Blank or All Folders View is Missing

If Windows Explorer is blank or the All Folders view is missing, it may be that the ExplorerBar value in the HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main
registry key is damaged.

To fix this problem, do the following:

  1. Upgrade to the most current version of Microsoft Internet Explorer at http://www.microsoft.com/windows/ie/default.asp
  2. Test to determine if the issue is resolved. If the issue is resolved, do not go to step 3. If the issue is not resolved, go to step 3.
  3. Make sure that you have a backup of your computer available before editing the registry.
  4. Use Registry Editor to delete the ExplorerBar value in the following registry key, and then restart your computer:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main

Too Many File Types

When you try to use the search feature in Windows Explorer, you may get the following error:

The instruction at 0×778aa57 reference memory at “0×3b0046″. The memory cannot be read.

This can happen if you just added more than 64 file types in the File Types tab under the Folder Options dialog (found in the Tools menu in Windows Explorer). To resolve this problem, get Service Pack 4 for Windows 2000 from:

http://www.microsoft.com/windows2000/downloads/servicepacks/sp4/default.mspx

White Desktop and BrowseUI.DLL Error

When you start up Microsoft Windows Millennium Edition (Me), the screen is white, and the following error message may appear:

Explorer has caused an error in Browseui.dll

You get a prompt to change desktop settings, because Active Desktop is turned off, but changing settings doesn’t help. The same error displays, and then the computer freezes.

You can resolve this issue by using the Registry Scan utility:

  1. Insert the Windows Me emergency startup disk, and restart your computer.
  2. Use the arrow key on your keyboard to select Start Computer Without CD-ROM Support, and then press Enter.
  3. At the command prompt type scanreg /fix, and then press Enter.
  4. After the ScanReg process is complete, restart your computer. The Registry Scan utility will find and remove corrupted registry entries and system files. The system replaces those files with a working copy of the files.

Explorer Causes an Invalid Page Fault in Browseui.DLL

After you log on to a Windows 98-based computer, you may get the following error:

This program has performed an illegal operation and will be shut down. If the problem persists, contact the program vendor.

If you click Details, the following error message will display:

- EXPLORER caused an invalid page fault in module EXPLORER.EXE at 167:00401f31

- EXPLORER caused an invalid page fault in module BROWSEUI.DLL at 167:00401f31

If you close the error, the computer starts with a blank desktop. Starting in safe mode does not solve the problem, but the memory address listed may change. This can happen if the Browseui.dll file is missing or damaged.

To fix this problem, try Method 1; if that fails, try Method 2.

Method 1: Repair Internet Explorer

  1. Restart the computer to display the command prompt by inserting the Windows 98 Emergency Startup disk and starting the computer, or pressing the CTRL key while starting the computer  and selecting Command Prompt Only from the Windows Startup Menu.
  2. At the command prompt, type edit c:\windows\system.ini, and then press the Enter key to open the System.ini file in MS-DOS Editor.
  3. Use the arrow keys to navigate through MS-DOS Editor. Under the [Boot] section, change the following lineshell=Explorer.exeto:

    shell=Progman.exe

  4. Press ALT+F to scroll down to Exit, and then press Enter. Select Yes to save the Windows\System.ini file and to return to the command prompt.
  5. Restart your computer, and Program Manager will start.
  6. Click File | Run, type control appwiz.cpl, and then click OK to open the Add/Remove Programs Properties dialog box.
  7. On the Install/Uninstall tab, click Microsoft Internet Explorer 5 and Internet Tools, and then click Add/Remove.
  8. Select the Repair Internet Explorer option, and then click OK. Follow the instructions in the wizard to repair Internet Explorer, and when you are prompted to restart the computer, click Yes.
  9. Repeat steps 1 through 5, but in step 3, change the line shell=progman.exe to shell=explorer.exe.

If the error persists, follow the steps in Method 2.

Method 2: Restore Internet Explorer

  1. Restart the computer to display the command prompt by inserting the Windows 98 Emergency Startup disk and starting the computer, or pressing the CTRL key while starting the computer  and selecting Command Prompt Only from the Windows Startup Menu.
  2. At the command prompt, type edit c:\windows\system.ini, and then press the Enter key to open the System.ini file in MS-DOS Editor.
  3. Use the arrow keys to navigate through MS-DOS Editor. Under the [Boot] section, change the following lineshell=Explorer.exeto:

    shell=Progman.exe

  4. Press ALT+F to scroll down to Exit, and then press Enter. Select Yes to save the Windows\System.ini file and to return to the command prompt.
  5. Restart your computer, and Program Manager will start.
  6. Click File | Run, type control appwiz.cpl, and then click OK to open the Add/Remove Programs Properties dialog box.
  7. On the Install/Uninstall tab, click Microsoft Internet Explorer 5 and Internet Tools, and then click Add/Remove..
  8. Click the Restore to previous Windows Configuration option, and then click OK. Complete the wizard to restore the earlier Windows configuration, and when prompted to restart the computer, click Yes.
  9. Repeat steps 1 through 5, but in step 3, change the line shell=progman.exe to shell=explorer.exe.

If both methods fail, you may have to completely reinstall the Windows 98 operating system. It should be noted that the reinstallation of Windows 98 may result in the loss of some Windows configuration information and/or data.

Javascript Errors

Monday, July 9th, 2007

JavaScript is a scripting language developed by Netscape for web browsers and is the de facto standard for scripts on web pages (it is also possible to use VBScript but almost no one does since it is only supported by IE). Microsoft uses an implementation of JavaScript called JScript, and while there are some differences between the two (and implementations in other browsers), everyone refers to browser scripting as JavaScript. Many people think that Sun’s Java programming language and JavaScript are related but the only things they share in common are the name and superficial syntax conventions.

It is important to understand the difference between JavaScript, scripting languages like PHP and ASP, and web programming languages like Java and ASP.NET. JavaScript is a client-side scripting language, and it runs on your browser. Essentially, the web page you visit tells your computer what to do, and your computer does it. Scripting languages like PHP and ASP are server-side scripts that are read through an interpreter on the web server and displayed to your browser. Web programming languages like Java and ASP.NET (Java is not strictly a web programming language but ASP.NET is) are actually programs that run on the server, created ahead of time by the web site designers. Instead of parsing a script which can be changed on the fly, the web server acts as a front-end to another program and any changes to the program require that it be recompiled.

The Fundamental JavaScript Problem

Each browser has its own interpretation of JavaScript and this quickly leads to problems. A few years ago, nearly everyone used Internet Explorer to surf the web. There were still some holdouts from the 90’s Microsoft/Netscape browser war but not many. This lead web developers to code JavaScript that they only checked in Internet Explorer. Even though IE 4.0 kept to published web standards better than Netscape 4.0, Microsoft began developing its own proprietary implementation of JavaScript and other web languages, adding non-standard items and leaving other standard items unimplemented. The result was a lot of pages that only worked in IE.

Apple threw its own implementation into the mix with the Safari web browser in 2003, which muddied the waters a bit as Mac usage began to climb. A year later Firefox burst upon the scene as a faster, safer alternative to IE and gained 10 percent market share by November 2005. Moreover, Firefox closely implemented the standards set forth by the W3C, an independent group that has been publishing web standards since 1994 and whose director, Tim Berners-Lee, invented the World Wide Web in 1989.

With at least three major implementations out there, it is very difficult for web site designers to check that their pages work in all three browsers. When they don’t, JavaScript errors will occur.

Other Causes

Spyware can cause JavaScript errors if it modifies how your browser handles JavaScript code, which many do by capturing keystrokes and mouse-clicks hoping to catch your passwords and pin numbers on banking sites and online stores. Spyware will also try to place its own custom ads on web pages which also can cause JavaScript errors. Getting rid of spyware can be difficult but I have outlined steps to prevent, detect and clean up spyware in my Dealing with Spyware blog entry.

Pop-up blockers can also cause JavaScript errors although this is always the fault of the web site for not checking to see that pop-ups are disabled. If you trust the site you are on, you can disable the pop-up blocker for that site to see if it helps. Another trick is clearing your cache - some websites have multiple JavaScript files and if you don’t have the latest one you could be calling a piece of code that no longer exists.

If you use Firefox, you can cut down on the number of JavaScript errors by installing the NoScript extension. This will allow you to choose which sites run JavaScript and which do not. A lot of sites work fine without JavaScript for casual surfing.

The Blue Screen of Death

Wednesday, June 13th, 2007

The blue screen of death (BSOD) is likely the most famous component of the Windows operating system. First seen in Windows 3.1, it gained notoriety after appearing during Bill Gate’s unveiling of Windows 98. Anyone who ever used Windows 95, 98 or Me for any length of time has probably seen a BSOD, and though they are less common with Windows 2000, XP and Vista, they still occasionally appear. Windows XP and Vista will reboot if a bluescreen condition happens during the boot process and then display the “Windows has recovered from a serious error” message.

Causes of BSODs

In Windows 2000, XP and Vista, BSODs can be caused for a number of reasons. Below, I’ve listed some of the stop codes and possible causes, summarized from The Lazy Admin website:

  • STOP_0×0000000A IRQL_NOT_LESS_EQUAL:
    Buggy device drivers, virus scanners and backup tools.
  • STOP 0×0000001E KMODE_EXCEPTION_NOT_HANDLED:
    Programs, usually trojans and spyware (although legitimate remote control programs may cause the same problems) attempting to subvert the Windows logon process.
  • STOP 0×0000007B INACCESSIBLE_BOOT_DEVICE:
    Hard drive failure, bad boot.ini configuration, or incompatible hard disk controller drivers. This can happen after swapping out a motherboard with another one having different disk controllers.
  • STOP 0×00000050 PAGE_FAULT_IN_NONPAGED_AREA:
    Windows tries to access memory that is not available and can’t be written to the page file, typically caused by bad memory or printer drivers.
  • STOP 0×0000007F UNEXPECTED_KERNAL_MODE_TRAP:
    Bad memory chips or CPU overclocking.
  • STOP 0×00000024 NTFS_FILE_SYSTEM:
    Failing hard disk or buggy third-party disk defragmenters.
  • STOP 0×0000002E DATA_BUS_ERROR:
    Hardware incompatibility, misconfigured BIOS settings or bad memory.

Troubleshooting Steps

The first thing to do is disable automatic restart after BSODs, before trouble begins. Right-click My Computer and choose Properties. In the Advanced tab, in the Startup and Recovery section, click Settings and then uncheck Automatically restart. Click OK twice.

If you do get a stop error there are a lot of things you can do, but the first steps to take are typically in the error message itself. If you need to, write down the error, especially the STOP code (like the ones listed above), and do a Google search on it if you have some other means of internet access.

Microsoft has provided a document on BSOD errors, that while highly technical, offers good advice based on the STOP code received. Skip ahead to page 22 and then find the error matching the one you got and try the troubleshooting steps there.

Most of the time, BSODs are hardware or driver related so your first priority after getting your computer up and running is backing up your data, if you aren’t doing that already.

Svchost.exe takes up 100% of the CPU

Wednesday, June 6th, 2007

If your computer has been moving slow lately, particularly after you log in, it may be because of a problem with the Windows Automatic Updates client. To check for this, open Task Manager (Ctrl-Shift-Esc) and look in the Processes tab. Sort by CPU usage and see if svchost.exe is at the top - if so, the problem is almost certainly related to Windows Updates.

You may be wondering what svchost.exe is and what it has to do with Windows Updates. Svchost.exe is a Windows executable that most Windows operating system components use to run services. A service is any program that runs constantly (unlike regular applications that you open and close), has to register itself with Windows and is listed under Control Panel -> Administrative Tools -> Services (switch to Classic View if you can’t find Administrative Tools). For example, whenever a program crashes you will see a dialog box pop up asking if you would like to send an error report to Microsoft. This “feature” is provided by Microsoft’s Error Reporting Service, which incidentally runs as svchost.exe.

The Windows Update client has two parts - one a stand-alone executable that runs when it’s time to check for updates (wuauclt.exe) and the Automatic Updates service that runs as svchost.exe. When you first start up your computer and log in, the stand-alone executable runs to check for updates but uses the service as well. This typically takes less than a minute and should not max out CPU usage for an extended period of time.

So what’s the fix? There’s quite a bit of information out on the Web about this and Microsoft has released a couple updates, but if your computer is really locked up you may have a hard time actually installing them. In fact I had to kill the svchost.exe process using Task Manager on one computer just to install the update (and that’s not an action I would recommend unless you really know what you are doing). The first thing you may need to do is temporarily fix the problem:

  1. Open My Computer and go to Tools -> Folder Options…, then the View tab. Verify that Show Hidden Files is selected and that the two options starting with Hide are unchecked.
  2. Click OK and then browse to C:\Windows\SoftwareDistribution\Download, delete everything in the folder but not the folder itself, and then go to the Windows Update site and try to get the latest updates. The files you deleted should start to reappear, that is normal.
  3. If that does not work, go to Start -> Run…, type in net stop wuauserv, and hit Enter.
  4. In Windows Explorer, browse to C:\Windows\SoftwareDistribution\DataStore and delete DataStore.edb (this will remove update history from Windows Update).
  5. Go to Start -> Run…, type in net start wuauserv, hit Enter and go to the Windows Update site and try to get the latest updates.
  6. If that does not work, repeat step #3 and then delete all files and folders under C:\Windows\SoftwareDistribution but not the folder itself, then repeat step #5.

Once your computer is in a usable state, download and install the appropriate update from this page:

http://support.microsoft.com/kb/927891

then download and install the latest Windows Update Client here:

http://download.windowsupdate.com/v7/windowsupdate/redist/standalone/WindowsUpdateAgent30-x86.exe

You may need to restart after the installation and the first time Windows Update runs afterward it may still use a lot of CPU but after that it should be fine.

Troubleshooting ActiveX Errors

Friday, June 1st, 2007

Before jumping into ActiveX errors, it’s probably a good idea to get a background on what ActiveX is. Microsoft coined the term ActiveX in the late 1990s to describe reusable software components based on their Component Object Model (COM). Originally intended for Visual Basic, Microsoft soon integrated them into Internet Explorer as competition for Java applets (which are essentially the same idea). It’s important to understand that ActiveX is proprietary to Microsoft – no other browser implements ActiveX controls, unlike JavaScript and Java Applets which all major browsers implement.

ActiveX controls developed a bad name for themselves as their integration with Internet Explorer and Internet Explorer’s integration with Windows soon led to adware and spyware infections. Controlling a computer through an ActiveX control is ridiculously simple, and this is a major difference between IE’s ActiveX and Java applets.

Verifying IE Settings

The very first thing to do when troubleshooting ActiveX errors is to make sure ActiveX settings in Internet Explorer are set correctly. In IE, go to Tools… -> Internet Options and select the Security tab. Change the security level for the current zone to Medium and then click the Custom Level button. Verify these options are set as follows:

  • Run ActiveX controls and plug-ins – Enabled
  • Script ActiveX controls marked safe for scripting - Enabled
  • Scripting – Enabled

While you may be tempted to enable everything, be aware that unsigned ActiveX controls are almost always dangerous and you should never allow them to download. Legitimate (and even illegitimate) companies will always sign their ActiveX controls. However that does not mean the ActiveX control is safe.

Proactive Maintenance

There is a saying, “less is more.” This is pretty accurate for software and ActiveX controls are no exception. Thanks mostly to the popularity of Firefox and a plethora of security issues, ActiveX controls are declining as companies try to improve browser compatibility and reduce the number of prompts that users must go through. This means that in many cases you may have an alternative to downloading an ActiveX control as more sites will work without them. The fewer ActiveX controls you have installed, the better things will run.

You can see how many ActiveX controls you have installed by going to Tools… -> Manage Add-ons in IE6 or Tools… -> Manage Add-ons -> Enable or Disable Add-ons in IE7. There are three choices in the drop-down menu that will be useful:

  • Add-ons currently loaded in Internet Explorer
  • Add-ons that have been used by Internet Explorer
  • Add-ons that run without requiring any permissions

Sort each of these by Publisher and check out the ones that aren’t Microsoft or Sun Microsystems or Adobe. You can disable 3rd party add-ons temporarily to see if it helps solve the problem. If you can disable the controls but still use the publisher’s web site it may be advisable to delete the control altogether. If you do need it, you can just install it again and it may fix the problem you were having.

Re-registering DLLs

In the same window, if you look at the File column you’ll notice the file that is the ActiveX control is registered to. The registry information on these DLLs can become corrupted, leading to errors. These errors can sometimes be solved by re-registering the offending DLL, if it was registered in the first place. All the Microsoft-related DLLs should be registered and the following steps should fix the problem:

  1. Go to Start -> Run…, type in “cmd” without quotes and hit enter.
  2. In the command window, run regsvr32 file.dll where file.dll is the name of the file in the File column.
  3. Observe whether the operation succeeded (again, 3rd-party DLLs will probably not work with this method).

Registry Cleanup

If re-registering the DLLs didn’t work or the ActiveX control is a third-party control, it may be time to clean up the registry. This is not something you want to try on your own so it’s best to get something like RegCure to do this for you. RegCure will find invalid ActiveX entries and remove them, so Windows won’t think a control exists when it doesn’t.

Fix Windows Installer Errors

Thursday, May 24th, 2007

Installing programs in Windows is usually pretty simple, but Microsoft hides the complex details from the user. Under the hood, there are a lot of things that can go wrong.

Windows Installer and MSI Files

Windows has a common installation handler called Microsoft Installer (MSI), which handles the installation of .msi files. Occasionally, the installer stops working properly and you might get an error about the “Windows Installer service” when this happens. Typically this is the result of a corrupted registry although it could simply be a temporary problem.

The first step to try is a restart. It’s possible that a previous installation didn’t finish and is preventing the current installation from working. If that doesn’t work, there are several things you can try (but restart first to make sure no programs are still trying to install):

1. Make sure you have the latest Windows Updates. You can manually download the latest Windows Installer package from this page.

2. Re-register the Windows Installer DLL by running the following commands from the command prompt (Start -> Run… -> cmd):

msiexec /unreg
msiexec /regserver

3. Make sure the Windows Installer service isn’t disabled. Go to Start -> Settings -> Control Panel and switch to Classic view if necessary. Open Administrative Tools -> Services and find the Windows Installer service. The Startup column should say “Manual” but the service doesn’t necessarily need to be running.

4. Delete all files in the following temporary folders (open My Computer and drag these addresses to the address bar):

%systemdrive%\temp

%systemdrive%\%windir%\temp

%temp%

Each of these addresses will expand into the temporary folders used by Windows Installer.

Windows Updates

If you have installed Service Pack 2 recently, or have recently turned on Automatic Updates, you computer may hang during the install. You can solve the problem by following the instructions at the following page:

http://support.microsoft.com/default.aspx?scid=kb;en-us;885894

You may need to retry installing updates in “Custom Install” mode so you can see if one of them is in the list.

More recently, Microsoft has released a Flash update that does not correctly detect whether Flash is installed. While it’s pretty rare that someone doesn’t have Flash installed this update will continually fail to install (although it shouldn’t hang your computer). You can either uncheck the update and install it later if you need to or just ignore its behavior.

Windows Installer Won’t Go Away

Sometimes Windows Installer will run every time you run a program. This is especially a problem with Microsoft Office, which will occasionally lock up while searching vainly for some component that it believes is necessary. The cause of this is typically the default installation of Office which sets some features to “Install on first use” (why Clippy can’t be that way by default, no one knows). When it thinks you are trying to use those features it tries to install them from the CD, as though we all faithfully keep the Office install CD in our DVD drives (or within arm’s reach).

A possible fix for this is to re-install the offending product, using the custom installation option. Make sure that none of the items are set to “Install on first use”. If that doesn’t work though, there’s not a lot that you can do. You can disable the Windows Installer service (see #3 in the first section on MSI files, right-click on the service, and set it to “Disabled”) but then you’ll have to enable it every time you want to install a new program that uses the Windows Installer service.

Hot EXE errors and their remedies

Thursday, May 10th, 2007

On modern operating systems like Windows XP and Vista, EXE errors should be relatively few and far between. A clean-running system may have occasional errors but these are typically the result of poorly written software and there’s really not much that can be done to fix them. However spyware and adware often causes executable errors as a result of very buggy code and attempts to hook into Windows system processes.

General EXE fixes

The first thing to do when troubleshooting an EXE error is to look up the error in Google. Chances are if it’s a common error someone has written something about it already. It’s important to get he name of the executable and the error number and read the solutions carefully to make sure they are related to the problem. Also make sure that you have the latest updates from Microsoft Update. While updates occasionally cause errors they typically do a lot more good than harm to your computer, often by restoring core DLLs and registry information to a stable state.

Sometimes problems can be solved by re-registering core Windows DLLs. The Windows registry stores information about Windows DLLs but this information can be corrupted. Use the command line (Start -> Run… -> “cmd”) tool “regsvr32” to re-register DLLs as follows:

regsvr32 /i nameofdll.dll

Try re-registering the following DLLs and restarting Windows:

  • User interface errors: shell32.dll
  • Image errors: shimgvw.dll
  • Network errors: netplzwiz.dll
  • Internet Explorer errors: mshtml.dll

If this doesn’t do the trick, try uninstalling some programs that you don’t need and read the blog entry on speeding up your computer by pruning processes. Eliminating unnecessary programs can sometimes cure EXE errors as well as slow performance.

Clean up Spyware and Adware

More often than not, EXE errors are a result of spyware or adware infesting your computer. Internet Explorer especially bears the brunt of spyware infestations as it is the most common attack vector and certain adware programs attach toolbars and ActiveX controls to it. Normally a spyware infestation is easy to recognize – a new home page you can’t change, another toolbar in IE, slow performance or a swarm of pop-ups. Recently though spyware has been less and less obtrusive as organized criminals have taken over and making money has become the primary goal. If you don’t know that you have spyware you are a lot less likely to try cleaning it up.

The first thing to do is to run anti-spyware software and force it to do a manual scan of your computer. Most anti-spyware products offer “real-time” scan but it is quite difficult to look for thousands and thousands of spyware programs continuously without slowing the system to a crawl. A manual scan will search every type of infestation and has a much better chance of cleaning problems. A registry cleaner like RegCure is also a good option for deep-cleaning the registry after the junkware has been removed.

Last Options

If the error persists after a thorough cleaning, there may be a deeper issue. You may have a rootkit installed, a serious issue with Windows system files or folders or worse, a hard drive that is starting to die. At this point you should decide whether it’s worth your time to try more products, call the Geek Squad or simply back up your data and try something more dangerous like System Restore or a complete re-installation of Windows. If you are a casual user with only a few programs, a re-install of Windows might be faster and cheaper than continuing to troubleshoot the problem.

Advanced users should consider using the Files and Settings Transfer Wizard (FAST) (Start -> Programs -> Accessories -> System Tools -> Files and Settings Transfer Wizard) to create a backup of user profile settings and documents and burning it to a DVD in case things go wrong further down the road of troubleshooting. Be warned, however, that FAST doesn’t always work like it is supposed to. A manual backup of important documents is a necessity.

In the last 3 years I’ve had my desktop and laptop I haven’t had to re-install Windows once, but I’ve worked on friends’ computers which were so infested that I could have re-installed Windows in the same amount of time it took to clean it. The best cure is always prevention.

Hot DLL Errors and their remedies

Tuesday, May 1st, 2007

Illegal System DLL Relocation in User32.dll or Shell32.dll

A couple of the latest Microsoft security patches have wreaked havoc on a few obscure and some not-so-obscure programs. After an installation of MS07-008 (KB928843) or MS07-017 (KB925902), certain programs may crash with the following error:

“app name” – illegal System DLL Relocation

One resolution is to download another patch from Microsoft, which fixes the problems. The patch can be downloaded from Microsoft Update [http://update.microsoft.com/microsoftupdate] or from [http://www.microsoft.com/downloads/details.aspx?familyid=74AD4188-3131-429C-8FCB-F7B3B0FD3D86&displaylang=en]. In some cases, upgrading the affected software will also fix the problem. Microsoft has listed the following programs known to have problems:

  • RealTek HD Audio Control Panel, versions 1.41, 1.45, 1.49, 1.57
  • ElsterFormular 2006 and 2007
  • TUGZip 3.4
  • CD-Tag 2.27
  • BMC PATROL 7.1

Additionally, Microsoft’s Security Response team has identified two more programs that are affected that are not mentioned in the Microsoft Knowledge Base (KB) article:

  • CrystalXP’s BricoPack Vista Inspirat 1.1
  • Grisoft Inc.’s AVG 7.5

Corrupt or Missing HAL.dll

The HAL.dll file contains the core libraries for Windows’ Hardware Abstraction Layer, which acts as a buffer between Windows applications and the computer hardware. There are many possible causes of HAL.dll corruption ranging from a botched dual-boot install to disk failure. Typically one of the following errors will appear regarding HAL.dll:

Windows could not start because the following file is missing or corrupt:
C:\WINDOWS\system32\hal.dll.
Please re-install a copy of the above file.

C:\WINDOWS\System32\Hal.dll missing or corrupt:
Please re-install a copy of the above file.

Cannot find C:\Windows\System32\hal.dll

Cannot find hal.dll

There are several solutions to the problem. First, restarting the computer may fix the problem. Secondly, the boot.ini file may be corrupt and need to be fixed. Check out the boot.ini by running msconfig (Start > Run… > msconfig). In the BOOT.INI section, click on the “Check All Boot Paths” button to make sure all boot paths lead to actual partitions. MSConfig will give you the option of removing the entry, but to fix the entry it will have to be edited manually.

If that does not solve the problem, it may be necessary to load the original HAL.dll file from the Windows installation CD. Boot to the CD and run the recovery console. At the console use the following commands to restore the HAL.dll file:

> attrib –H –R –S C:\boot.ini
> del c:\boot.ini
> bootcfg /rebuild
> fixboot

If that fails, boot to the recovery console again and try the following command:

> expand d:\i386\hal.dl_ c:\windows\system32\hal.dll

where ‘d:’ is the CD-ROM drive the Windows CD is in. If that fails, a “repair” installation of XP may solve the problem. The last ditch solution, assuming the hard drive has not been corrupted, is a fresh install of Windows XP, preferably on a separate partition or drive. Installing on the same partition as the existing Windows installation is dangerous because it will overwrite the “Program Files” directory (the Documents and Settings directory should be safe), which can cause all sorts of problems. It may still allow you to recover your data, however, and should be done if no other options remain.

NTDLL.dll errors

NTDLL.dll is a core Windows DLL that may become corrupted. There are myriad causes for this from spyware to sloppily written applications to sloppily written Windows Updates. Since this is a core DLL, the same steps for HAL.dll may work for NTDLL.dll as well. However, if booting is still an option, a registry cleaner may be a better cure than replacing the DLL in terms of time spent troubleshooting. An hour spent cleaning spyware and fixing the registry may save several hours in recovery consoles, moving data, reinstalling applications and restoring preferences.