So, how many versions of Internet Explorer do you have
installed on your computer? What release of Windows are you up to? It almost
feels like you could cut open your hard drive and count the updates like tree
rings,
going all the way back to Windows 95 and IE 3.0. With all
those installations, did you know that occasionally a file gets left behind?
Actually, what's really surprising is that it doesn't happen
more often.
Yes, now and then a System file gets lost. It simply goes
AWOL. And that's what happened when the error message Invalid page fault in Webcheck.dll
began popping up on the computer screen of one of our
BugNet contributors when they used Internet Explorer. You
may have experienced similiar error messages. In the following pages, we'll
show you how to locate your application's error-producing file, check its
version, and replace it if necessary.
Confirmed by tests at KeyLabs, BugNet was able to reproduce
the condition that spawned the user's Webcheck.dll error with their latest version
of Internet Explorer. In this case, there was a Webcheck.dll file
located in the C:WINDOWSSYSTEM directory. In Windows 95 and
98, that's exactly where it's supposed to be. But the version number was wrong.
The Webcheck.dll file in the C:WINDOWSSYSTEM directory
was a holdover from a previous installation of Internet
Explorer.
To check the version number of any file, open Windows
Explorer and right click on the file. Select the Version tab. In this example,
Webcheck.dll should have the same version number as Internet Explorer (click on
Help >
About Internet Explorer). During a previous Internet
Explorer upgrade, the upgraded version somehow didn't get copied from the
cabinet file archive.
Figure A: Use a
right mouse-click to view the version number of a file.
Microsoft packs its install images into CAB, or
"compressed cabinet" archive files. Commercial
compression/decompression programs such as WinZip and the StuffIt Browser will
list the contents of Microsoft CAB archives and can extract compressed files.
For example, if you were to open Mobile95.CAB (or MobileNT.CAB) with WinZip,
one of the files listed would be Webcheck.dll. You could drag and drop this
file into a temporary directory, and then boot to DOS and replace it (more
about this later).
Windows 98 introduced a utility called System File Checker
that will scan the hard drive for out-of-date system files. System File Checker
can also extract files from CAB archives. In the Windows 98 Start Menu, go to
Programs > Accessories > System Tools and click on
System Information. Then click on Tools, and select System File Checker. For mouse-challenged
users, this utility can be executed from the Run prompt. Click on the Start
menu and select Run, then enter "sfc".
Figure B: Use a
right mouse click to view the version number of a file.
Sfc.exe was merged into System File Protection in Windows
Me. It returned in Windows 2000 as a command-line utility, though its primary purpose
is file version checking. To extract files from a CAB archive, the
best recourse is Extract.exe.
Extract.exe is a command-line utility shipped with all
versions of Windows except Windows 2000. Extract.exe can be used to list the contents
of CAB archives, and extract individual (or multiple) files. Windows 2000
includes a utility called Expand.exe that can be run from the Windows 2000
Recovery Console. Windows 2000 users may download Extract.exe from the
Microsoft Website.
Extract.exe runs from a command prompt or from the Start
Menu > Run dialogue box. Typing Extract.exe /? will display a list of the command-line
switches. The basic syntax is:
Extract /L C:TARGETDIRECTORY Cabinet_Name.CAB Missing.File
As indicated above, Webcheck.dll can be found in
Mobile95.CAB in the C:WINDOWS UPDATE SETUP FILES directory (if you've upgraded Internet
Explorer on your system). The target directory is
C:WINDOWSSYSTEM. So, to replace Webcheck.dll you would open
a DOS box, change to the C:WINDOWS UPDATE SETUP FILES directory (or enter the
complete path), and run:
Extract /L C:WINDOWSSYSTEM Mobile95.CAB Webcheck.dll
But wait! This will trigger a Sharing Violation error.
That's because Windows won't allow operating system files to be copied over
while "in use." There are two ways to get around this. Both involve
booting to
DOS-mode. You can extract the file to a temporary directory,
then boot to DOS and copy the file to its proper destination. Or, boot to DOS
and then run Extract.exe. (In Windows 2000 bring up the Recovery Console and
use Expand.exe.) The Windows 98 and Me startup disks create a supposedly "user-friendly"
version of Extract.exe called Ext.exe. But we found Ext.exe more difficult to
use than the full-blown Extract.exe.
The hardest part of this whole process is finding out which
CAB archive contains the file you want. The Windows 98 install CD contains over
70 CAB archives. In most cases, though, Extract.exe will do the heavy lifting for
you. The command
Extract /A /L C:TARGETDIRECTORY Cabinet_Name.CAB
Missing.File
will search all (hence the /A switch) of the CAB archives,
starting with the first CAB archive named, and stepping through the CAB
archives in directory order until it finds the file. It will then extract the
file and copy it to the target directory. On the Windows 98 SE install CD,
Base4.CAB is the first CAB archive listed in the WIN98 directory on the Windows
install CD. So if you change to the WIN98 directory on the CD, the
command
Extract /A /L C:TEMP Base4.CAB Webcheck.dll
will search through all of the CAB archives on the Windows
CD until it finds Webcheck.dll. It will then copy the file to C:TEMP.
If you just want to find the file, you can display the
contents of a CAB archives using the /D switch. And if you include the /A
switch, the command
Extract /A /D Cabinet_Name.CAB
will display the contents of all of the CAB archives in the
directory, starting with the first CAB archives named. In the case of a Windows
install CD, this will be a long list. So it would be a good idea to redirect
the output to a text file. The command
Extract /A /D Cabinet_Name.CAB > C:Files.txt
will create a file called Files.txt in the root that
contains the contents of the CAB archives.
More information about the command-line switches for
Extract.exe can be found in Microsoft Knowledge Base article Q129605.
Since Windows 98, Microsoft has automated the functions of
the System File Checker. In Windows Me, System File Protection (SFP) automatically
scans the "core system" for out-of-date files, and will
identify and attempt to repair any it finds. In Windows 2000, this utility is called Windows File Protection (WFP). In the future, these utilities should keep better track of critical files. But no operating system is perfect. And if a file not in the core system gets lost, mangled or misplaced, an alternate strategy to a complete reinstall is worth keeping on hand.