Exetools (https://forum.exetools.com/index.php)
-   General Discussion (https://forum.exetools.com/forumdisplay.php?f=2)
-   -   Clearing *.CHM cache without Internet Explorer (https://forum.exetools.com/showthread.php?t=19953)

Kerlingen 09-23-2021 21:29

Clearing *.CHM cache without Internet Explorer
The CHM file format has been used for many years for help files. It basically is an archive of many *.html and picture files and works similar to the offline version of a web page. Opening a CHM file on Windows will use some Internet Explorer shared DLLs in order to display its contents.

Microsoft has finally removed Internet Explorer from the most recent Windows 10 version. CHM files can still be displayed, but the "Internet Options" control panel application does no longer exist.

Does anybody know how to clear the "recent files", "visited links", "search history", "address autocomplete", ... for CHM files without the "Internet Options" control panel application?

I've already searched registry, C:\ProgramData\ and C:\Users\ for some of the entries in ANSI, UTF-8 and UTF-16 encoding but didn't get a single hit.

(Obviously: I don't want to install Internet Explorer again, I'm happy that it and most of its bugs are gone for good)

DominicCummings 09-24-2021 05:56

This isn't a direct answer, but I just felt it is worth mentioning that the chm files are themselves just 7x archives -- there are several other readers (e.g. xchm). I don't have a windows machine to hand at the moment, but have you looked at HKLM:\SOFTWARE\Microsoft\HTMLHelp\1.x ?

Stingered 09-25-2021 06:45

There is an old tool by Nirsoft, called IEcacheview.exe (has delete option). May help you find and delete files.


You can also do this programmatically (code and tool):


And just code (Delphi):


Procedure ClearIECache;
lpEntryInfo : PInternetCacheEntryInfo;
hCacheDir : LongWord;
dwEntrySize : LongWord;
dwLastError : LongWord;
dwEntrySize := 0;
FindFirstUrlCacheEntry( NIL, TInternetCacheEntryInfo( NIL^ ), dwEntrySize );
GetMem( lpEntryInfo, dwEntrySize );
hCacheDir := FindFirstUrlCacheEntry( NIL, lpEntryInfo^, dwEntrySize );
If ( hCacheDir 0 ) Then
DeleteUrlCacheEntry( lpEntryInfo^.lpszSourceUrlName );
FreeMem( lpEntryInfo );
dwEntrySize := 0;
FindNextUrlCacheEntry( hCacheDir, TInternetCacheEntryInfo( NIL^ ), dwEntrySize );
dwLastError := GetLastError;
If ( GetLastError = ERROR_INSUFFICIENT_BUFFER ) Then Begin
GetMem( lpEntryInfo, dwEntrySize );
If ( FindNextUrlCacheEntry( hCacheDir, lpEntryInfo^, dwEntrySize ) ) Then
DeleteUrlCacheEntry( lpEntryInfo^.lpszSourceUrlName );
Until ( dwLastError = ERROR_NO_MORE_ITEMS );

Kerlingen 09-25-2021 17:01

The registry entries mentioned in the article are already empty, the files either don't exist or are 0 bytes long. IEcacheview doesn't show me any entries.

The Delphi code posted does indeed clear the "autocomplete" history. I still don't know where/how that information is saved, but I don't care as long as it is gone. ;)

If executed a second time with no autocomplete entries present it will loop indefinitely, but you can Ctrl-C out of it.

All times are GMT +8. The time now is 16:12.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2021, vBulletin Solutions, Inc.
Always Your Best Friend: Aaron, JMI, ahmadmansoor, ZeNiX