Most problems that occur with computers are the result of
software-related issues: programs that lock up, printers that suddenly wont print,
operating systems that wont boot and lots of other common quandaries are all somehow
related to the operation of software on your PC. So, if these kinds of problems happen to
you, take comfort in the fact that the good news (if you can call it that), is that
youre not alone.
Unfortunately, the bad news is that troubleshooting
software problems on PCs is unquestionably the hardest problem-solving task youre
ever likely to run into (on your computer, that is). The reason for this is because of the
Byzantine-like structure of todays PC applications and operating systems. In
essence, the problem can be boiled down to this: All the various pieces of software on
your computeryour main applications, the drivers for your specific peripherals, and
the various Windows system fileswork together in an enormously complex web of
inter-relationships. Adding, removing or altering one piece of that puzzle can (and often
will) lead to software that just doesnt work.
That would be fine and good if changes to this puzzle were
few and far between, but for most people, these types of changes occur on a surprisingly
frequent basisand very often these changes are out of your control. Sometimes
its a matter of simple user error (oops, shouldnt have deleted that
file), but often its due to conflicts between two or more different pieces of
software, or even as a result of simply installing or removing applications. The end
result is that software-based problems are an all-too-frequent occurrence on virtually all
Windows computers.
Keep Current
One good general rule of thumb to keep in mind when doing
software-related troubleshooting is to make sure you have the most recent versions of your
applications, drivers and operating system. Usually that means taking an inventory of the
software and hardware you have installed on or in your computer, and then trolling the web
sites of the companies who make those products in search of updates, patches, service
packs and other types of bug fixes.
If you're using Windows 98, Windows 98 SE
or Windows ME, you should take advantage of
the built-in Windows Update feature to help you in this regard. Be aware, however, that as
handy as Windows Update may be, it will only provide you with operating system and some
driver updates. It will not get all the drivers you need nor will it get any application
updates you might require. So, use it as a starting point, but not as a sole resource.
Also remember to check for viruses. Most of the times you
get a virus on your PC you'll know about it, but some of them work "stealthily"
in the background, so you always have to be careful. Make sure that any computer you work
on has good anti-virus software installed and properly configured so that it's regularly
checking for viruses. Even more importantly, make sure that you keep the virus definition
files for the program current. Unless you update those definitions on at least a monthly
basis, your data will be at risk.
When is an Application not an Application?
Many of the software problems that people run into stem
from the confusing nature of todays Windows applications. Instead of consisting of
one large chunk of code (as they generally used to do, and still in many cases do on the
Mac), todays software programs are actually made up of lots and lots of little
pieces held together by an umbrella application. This umbrella app is typically the main
program file you double-click on to get an application started. To confound matters
further, these different pieces are often strewn across several different locations on
your hard disk, which creates even more possibilities for errors or other breakdowns.
Many of these individual pieces are .DLLs, or Dynamic Link
Libraries, which are chunks of program code that are called upon to perform various
functions as you run an application. Another name for them is Application Extensions.
Ideally, you never have to worry about these filesthey just do their magic in the
background while you do your work. And, when everything works right, thats exactly
what happens. If one of those files is deleted, changed or somehow corrupted, however, the
application that uses them wont work, and youll be in trouble.
Let me explain the installation process to give you an
idea of the issues involved. When you install an application, what usually happens is that
the installer creates a folder for your new program, copies some of the applications
pieces into there, copies other pieces into the Windows folder, creates shortcuts to your
program on the Start Menu (or in the Program Manager for Windows 3.1), makes additions to
the Windows Registry, and may even make some additions or alterations to your startup
files, such as autoexec.bat, win.ini, etc. (In many cases, these changes are the cause of
problems that keep your PC from booting properly. See the "PC
Startup Troubleshooting Tips" article for more.)
The complexity of this process is the reason, by the way,
that uninstaller applications were developed in the first placeit simply got to be
too hard to keep track of where all the different pieces of an application were stored (if
you could even get that info in the first place).
The files copied into the Windows folder may be .DLLs or
they may be other files that the programs developer has decided should be kept
there. Unfortunately, so many developers have decided to store bits and pieces of their
applications in the Windows folder that its become a dumping ground for a whole lot
of junk. (Even worse, theres no easy way to separate the wheat from the
chaffthe useful, necessary stuff from the unneeded "bloatware"so
Windows folders just keep growing and growing
.) Some of the .DLLs will probably be
unique to the program you installed and will only be used by that application. Others will
be shared files, which means they might be used by more than one application. And
thats where lots of problems arise.
Imagine, for example, that application A uses a shared
.DLL called ABC.DLL. Now, lets say that you install application B, which also
happens to use the shared ABC.DLL. But, it turns out, application B uses a later version
of ABC.DLL and so it overwrites the existing ABC.DLL file when its installed
(without any warning to you). Now, depending on how application A is written, the next
time its run and it looks for ABC.DLL, it may seamlessly work with the later version
of ABC.DLL installed by application B, or it might crash (a likely possibility). If the
latter occurs, it will undoubtedly lead you to wondering how that couldve happened,
since it worked just fine the day before. Sound familiar?
A similar type of situation is possible in reverse.
Lets say you try to remove application A from your system using Windows' Add/Remove Programs Control Panel (or even the applications own
uninstaller). At some point during that uninstall, the program may ask you if it should
remove any shared .DLLs that are not being used by other applications. The default choice
is to remove them and that's what most people do, but that can lead to more problems.
Again, depending on how the uninstaller works in
conjunction with the application being removed, its possible that application A
would remove ABC.DLL because it didnt know that a newer version had been installed
by application B and therefore would think that it wasnt being used by another
application. The result would be that after uninstalling application A, application B
wouldnt work because it was missing the ABC.DLL file (and you might even get an
error message to that effect).
In both of these instances, the only real solution to
these problems would be to reinstall the apps in question because theres usually no
simple way to reinstall only a shared .DLL (and even if there is, it may not be at all
obvious where it needs to be located). In the first example, youd probably have to
first get an updated version of application A from the vendors web site and then
reinstall that, hoping that it works with the new version of the ABC.DLL (and praying that
it doesnt add any new shared .DLLs that might break other applications!). In the
second example, youd just need to reinstall application B.
Windows System File Problems
A related, but even worse version of the problem can occur
if an application overwrites some of the shared system files used by Windows
95although that often means the operating system wont load. (The same types of
problems can also happen with Windows 98 or Windows ME, although Win98's System File Checker utility can
help take care of these problems much more easily.) If thats the caseit is
relatively rareyoull probably need to reinstall Windows itself.
(And if you do, you'll probably need to have a boot disk complete with a CD-ROM driver.
Here's an article that tells you how to create one.)
If you do think it's time to reinstall Windows, you might try the Windows Setup program's Verify option firstit should
save you time and maybe even a few extra headaches. The Verify option is supposed to be
available any time you run Windows 95, 98 or Windows ME Setup on a machine that already has
the same version of the operating system installed (although I've found that it doesn't
always show up for some reason).
What happens is, the Setup program detects that Windows is
already installed and then asks if you'd like to Verify your installation. If you do
choose to Verify, it goes through an installation log file called Setuplog.txt (you can
find it in your main hard drive's root directory--e.g., C:\--if you want to look at it) to
see what should be installed, confirms that all the required files exist and aren't
damaged, and then silently reinstalls any components that it finds are missing or damaged.
In some cases, this will solve Windows system problems.
Diving In
If your willing to get your digital fingernails a bit
dirty and you know the specific name of a .DLL or other Windows system file that's causing
a problem (perhaps because an error message keeps telling you the problem file's name),
there's another option. You can try to individually reinstall particular files. The
process is not trivial, however, because all the Windows system files are stored in
compressed Cabinet (.cab) files either on your hard disk, the Windows 95/98/ME CD-ROM, or
both. What you have to do is find the compressed file within a particular .cab file,
decompress it, and then copy it to appropriate directory inside the Windows folder.
Microsoft includes a DOS-based .cab file decompressor
called Extract.exe on the Windows 95 CD and installs it in your Windows folder as
part of the default installation. However, as you'll be able to quickly see from this article
in Microsoft's Knowledge Base on how to use the Extract program, the program is not
easy to use. Nevertheless, it can help you find the files you need. Another more
straightforward option is to get the CabView utility from Microsoft (it's party of their
handy PowerToys
utility pack), and use it to specifically find and then decompress the component you need.
Another improvement in Windows 98 and Windows ME is you can view the contents of CAB files and extract
individual elements just by using Windows Explorer.
Most shared .DLL problems can be avoided if the
programmers have done their homework, but given all the possible combinations of programs
and .DLLs that are out there, its almost impossible for them to avoid all problems.
And unfortunately, as frustrating as it may be, the only real answer to these problems is
to reinstall the software. In fact, Ive even heard or read some people recommend
that you reinstall Windows and your apps every 3-6 months or so to avoid problems. I think
this is overkill, but the thought has passed through my mind on more than one occasion as
Ive struggled through trying to resolve software problems on my own or other
peoples machines.
Another possible solution is to not remove any shared .DLL
files when you uninstall an application, but while that may work in a few instances, it
eventually leads to a Windows folder full of unnecessary, potentially problematic stuff,
so its not a great long-term solution. Frankly, theres no great long-term
solution other than to slug your way through, keeping your software as up-to-date as you
can (and even that doesnt always worksometimes its better just to find a
combination of software that works and stick with it).
Getting into Conflict
Oftentimes, software problems are due to conflicts between
two applications, which basically means one or both of the programs in question does
something in the course of their normal operation that causes the other application to
crash or to not function properly. This is related, though not identical, to the .DLL
problems described above.
Some conflicts are relatively easy to troubleshoot. If you
install a new application and every time you try to run it while your word processor is
open the new program crashes, but the new application works fine if the word processor
isnt running, then youve got a software conflict. The only way to fix it is by
getting an update for one (or sometimes both) of the applications in question. Hopefully
you wont end up in a situation where each vendor claims its the others
fault and nothing gets done, but be aware that that exact scenario sometimes happens.
Other conflicts are much harder to determine. One thing
you should check is to see if the conflict is related to applications that are running in
the background. Unbeknownst to most computer users, quite a few small applications are
usually running in the background on typical Windows 95/98/ME machine. This is true even if
you dont see any applications running on the Taskbar (which is why this can be so
confusing).
Under Windows 95, you can see a list of all applications
running at a particular time by holding down Ctl-Alt-Del simultaneously (just do it once,
thoughif you do press all three again, it will restart your machine without
prompting you to save any open files). The Close Program Window that pops up lists all the
currently running tasks. While some are easy to understand, many of the programs listed
only use obscure names like Systray or Rnaapp (which happen to be System Traywhich
is the system application that puts all the icons in the lower-right corner of your
Taskbarand Remote Networkingwhich is used by Dial-Up Networking whenever you
connect to the Internet via a modem). Figuring out what some of these various programs are
and do can be extremely difficult because theres usually very little information
available about them.
Again, Microsoft has improved this situation in Windows 98
and ME by including a handy utility called Microsoft System Information that gives a thorough,
understandable breakdown of all the different software components that are open and
running on your machine at the time you run the utility.
One possible option for Windows 95 users is to pick up a
copy of a shareware utility from SiSoft called Sandra. Sandra's Processes
Information module can not only give you more information about each task (technically
called a process) currently running on your machine, it can also tell you how much memory
each one is using. Very handy.
Another option for Windows 95 users is to get a copy of
the WinTop utility, which is part of Microsoft's
Kernel Toys for Windows 95. What WinTop does is give a quick overview of what
applications and other software processes are open on your computer at a given time and
shows you how much of the processor's time they're demanding.
For troubleshooting purposes under Windows 95,
98, or ME you
can quit applications individually from the Close Program Window mentioned earlier by
selecting one and clicking on End Task. As you go through and quit each one you can see if
that resolves your problem, but its a tedious process that doesnt always give
you the results you want. Another way to prevent (or see) some, though not all, of the
applications that run in the background is to check your Startup folder, which is buried
inside the Windows folder (its in the Programs folder, which is inside the StartMenu
folder). Many applications place small utility programs inside the Startup folder, so you
might be surprised at all the stuff you find there.
All the applications that are listed in the Startup folder
are run in the background every time Windows 95 starts. Some of them put an icon in the
System Tray to let you know that theyre running, but many of them dont provide
any visual indication whatsoever that theyre currently in use. If you want to
prevent them from loading at startup to check for conflicts with certain programs, or if
you just want to remove them completely, just remove the shortcuts listed in the Startup
folder, either by deleting them or moving them to a different place. (Note that deleting a
shortcut has no impact on the real file that the shortcut points toit will still be
on your system, but it wont load at the systems startup.)
Ill Take the Driver
So far, Ive only touched on applications, but
theres still more (hey, I told you this was hard
). Drivers, which are small
pieces of software that allow your computer and operating system to "talk" to
various peripherals that make up your system, such as your video card, printer, CD-ROM,
etc., are often at the heart of software-related computer problems.
Like regular applications, drivers are subject to bugs, or
errors, in them that can cause them to not function properly. More often than not,
however, driver problems are due to conflicts or incompatibilities either with specific
applications, other drivers, or some piece of system software. As I described in the
beginning of this piece, todays software is like a very complex puzzle and changing
one piece in a seemingly unrelated area of the PCs total software system can create
problems somewhere else.
Driver problems can manifest themselves in a number of
different ways. For example, if an application that used to be able to print can no longer
print, it might be the applications problem, but theres also a very good
chance that something has happened to the printer driver. Either a new piece of software
that was recently installed has created a conflict that prevents the driver from working
properly, or the driver file may have somehow been corrupted. (File corruption is a
baffling, confounding problem that can happen for any number of reasons, including a quick
electrical surge, an error in an application, a hardware error, and more.)
As with application problems, the only way to resolve many
driver issues is to get an updated version of the driver and reinstall it. (For more info
on installing or updating drivers, see the "PC
Hardware Troubleshooting Tips" article.)
The End
As difficult as it may be to accept, theres no magic
solution that can tell you exactly whats causing the problem when a piece of
software doesnt work right. Even utilities that claim to solve system software
problems for you are only partially successful and sometimes they introduce new
incompatibilities or other problems of their own. Thats part of the reason why
software troubleshooting is so toughand often such a frustratingly inexact science.
If you keep your calm and use your head, though, you can usually get through lots of
seemingly tough situations on your own (or perhaps with the help of a vendor-supplied
update). Remember this maxim: when in doubt, reinstall! (For more on reinstalling
everything, see "Starting Over: Repartitioning, Reformatting
and Reinstalling.") Good luck.
©1998-2000 O'Donnell Enterprises
Reproduction in any form is prohibited
without permission. However, feel free to create links to this, or any other page on the
site.
If you enjoyed this article, you'll really
like my book, "Personal Computer Secrets."