Introduction

Internet Browser History Component Suite

The complex set of components for internet browser history retrieval

IBHCS is compatible with Delphi compilers from version Delphi 2007 to Delphi 10.2 Tokyo.

It contains standalone component for every supported browser and component encapsulating all supported browsers as universal internet browser history collector. Every component has ability to save and load its data to/from System Information File.

Currently following browsers are supported:

Installation

Components

Types

This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented, you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation is required.

2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

3. This notice may not be removed or altered from any source distribution.

For more MiTeC components and applications visit please http://www.mitec.cz.

Copyright © 2006-2022 by Michal Mutl. All Rights Reserved.


Compatibility

Programming languages

  • CodeGear RAD Studio 2007 (Win32 Delphi personality)
  • CodeGear RAD Studio 2009 (Win32 Delphi personality)
  • Embarcadero RAD Studio 2010 (Win32 Delphi personality)
  • Embarcadero RAD Studio XE (Win32 Delphi personality)
  • Embarcadero RAD Studio XE2 (Win32&Win64 Delphi personality)
  • Embarcadero RAD Studio XE3 (Win32&Win64 Delphi personality)
  • Embarcadero RAD Studio XE4 (Win32&Win64 Delphi personality)
  • Embarcadero RAD Studio XE5 (Win32&Win64 Delphi personality)
  • Embarcadero RAD Studio XE6 (Win32&Win64 Delphi personality)
  • Embarcadero RAD Studio XE7 (Win32&Win64 Delphi personality)
  • Embarcadero RAD Studio XE8 (Win32&Win64 Delphi personality)
  • Embarcadero RAD Studio 10 Seattle (Win32&Win64 Delphi personality)
  • Embarcadero RAD Studio 10.1 Berlin (Win32&Win64 Delphi personality)
  • Embarcadero RAD Studio 10.2 Tokyo (Win32&Win64 Delphi personality)
  • Embarcadero RAD Studio 10.3 Rio (Win32&Win64 Delphi personality)
  • Embarcadero RAD Studio 10.4 Sydney (Win32&Win64 Delphi personality)

Operating systems

  • Windows XP
  • Windows Server 2003
  • Windows Vista
  • Windows Seven
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows 8
  • Windows 8.1
  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows 10
  • Windows Server 2016
  • Windows Server 2019
  • Windows 11


Installation

Files

Compilers.inc | Compiler versions defines
MiTeC.IBH.Lib.Common.pas | TIBH_Component
MiTeC.IBH.Lib.Browser.pas | TIBH_Browser
MiTeC.IBH.Lib.IndexDAT.pas | TIBH_IE_IndexDAT
MiTeC.IBH.Lib.URLHistory.pas | TIBH_IE_URLHist
MiTeC.IBH.Lib.WebCache.pas | TIBH_IE_WebCache
MiTeC.IBH.Lib.Mork.pas | TIBH_Mork
MiTeC.IBH.Component.IE.pas | TIBH_IE
MiTeC.IBH.Component.Edge.pas | TIBH_Edge
MiTeC.IBH.Component.Firefox.pas | TIBH_Firefox
MiTeC.IBH.Component.Chrome.pas | TIBH_Chrome
MiTeC.IBH.Component.Opera.pas | TIBH_Opera
MiTeC.IBH.Component.Safari.pas | TIBH_Safari
MiTeC.IBH.Component.Vivaldi.pas | TIBH_Vivaldi
MiTeC.IBH.Component.SeaMonkey.pas | TIBH_SeaMonkey
MiTeC.IBH.Component.Yandex.pas | TIBH_Yandex
MiTeC.IBH.Component.PaleMoon.pas | TIBH_PaleMoon
MiTeC.IBH.Component.EdgeChromium.pas | TIBH_EdgeChromium
MiTeC.IBH.Component.Brave.pas | TIBH_Brave
MiTeC.IBH.Component.Browsers | TIBH_Browsers
MiTeC.IBH.Register.pas | Components registration
MiTeC.IBHCS.dpk | Package project

Installation

  1. Unpack MIBHCS_Sources.7z into desired folder.
  2. Run your Delphi/RAD application.
  3. Open menu Tools|Options, navigate to Environmet options|Delphi options|Library (Win-32) and add Common and IBHCS folder into Library path.

If you have MiTeC System Information Component Suite installed (12.6.0+), you don't need Common folder either copy or add into Library path.

  4. Optionally uncheck 'Stop On Delphi Exception' option in Debugger Options|Language Exceptions.
  5. Open MiTeC.IBHCS.dpk and then click on the Install button or select Install item from context menu in Project manager.
  6. If you have MiTeC System Information Component Suite installed (12.6.0+), following dialog appears

Click OK and components should appear under MiTeC IBHC Suite tab .


Version History

1.4.1 21.12.2020

+ Delphi 11 Alexandria compatibility

- !!!! DEVELOPMENT AND COMPATIBILITY FOR DELPHI 2005,2006 HAS BEEN ENDED !!!!!!!!

1.4.0 21.12.2020

+ added standalone TIBH_EdgeChromium component and demo for Microsoft Edge Chromium

+ added standalone TIBH_Brave component and demo for Brave Browser

1.3.0 1.6.2020

+ added TIBH_Edge.CheckWebCacheDB and TIBH_IE.CheckWebCacheDB properties

+ Delphi 10.4 Sydney compatibility

1.2.0 8.8.2018

+ added standalone TIBH_Edge .component for Microsoft Edge history

+ added demo for TIBH_Edge

1.1.0 26.6.2018

* Fixed bug in TIBH_IE .RefreshData method causing "floating point invalid operation" exception

+ added TIBH_Browsers .BrowserRecordCount property

+ added TIBH_Browser .BrowserEXE property

+ added TIBH_Browsers .BrowserEXE property

* all demos enhanced and normalized

1.0.0 21.5.2018

+ First release


Components

TIBH_IE

TIBH_Edge

TIBH_Firefox

TIBH_Chrome

TIBH_Opera

TIBH_Safari

TIBH_Vivaldi

TIBH_SeaMonkey

TIBH_Yandex

TIBH_PaleMoon

TIBH_EdgeChromium

TIBH_Brave

TIBH_Browsers


TIBH_Component

Components ››

TIBH_Component is base component providing data manipulation functions for writing and reading data to/from System Information File and some common properties.

MiTeC.IBH.Lib.Common.pas

TObject → TPersistent → TComponent → TIBH_Component

Methods

Clear | public | Clears all data
LoadFromStorage | public | Loads data from System Information File
RefreshData | public | Refreshes data from current system
SaveToStorage | public | Saves data to System Information File
LoadStorageInfo | public | Loads TStorageInfoRecord or any other user defined header from System Information File

Properties

ConvertTimeToLocal | public | boolean | If True all timestamps dependent on timezones are converted to local time else all timestamps are left intact
DataAvailable | public, read-only | boolean | True indicates there are data gathered from current system or loaded from System Information File
LiveData | public, read-only | boolean | True indicates data is from from current system, False indicates data was loaded from System Information File
StorageFilename | public, read-only | string | If data was loaded from System Information File it contains its filename otherwise is empty
StorageInfo | public, read-only | TStorageInfoRecord | if data was loaded from System Information File it contains information about this file and contained data
StreamCodeProc | public, read-only | TCodeStreamProcedure | References used encoding procedure for data reading/writing from/to streams to System Information File

Events

OnReadHeader | published | THeaderReader | Event fires when Summary Information is read from System Information File. When assigned it replaces default header reader.
OnWriteHeader | published | THeaderWriter | Event fires when Summary Information is written to System Information File. When assigned it replaces default header writer.


TIBH_Browser

TIBH_Browser is ancestor for IBHCS components.

MiTeC.IBH.Lib.Browser.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser

Methods

AppendToStorage | public | Appends data to System Information File
AddRecord | public | Adds TURLRecord to internal storage
Sort | public | Sorts internal data in descending or ascending order
Search | public | Searches internal data for text in Title or URL

Properties

StorageFolder | protected | string |
BrowserID | protected, read-only | TInternetBrowser |
Files | public, read-only | TStrings | Source data files for analysis (if supported/needed)
RecordCount | public, read-only | integer |
Records[AIndex: Cardinal] | public, read-only | TURLRecord |
Temp | public, read-only | string | Folder for temporary files
BrowserEXE | protected, read-only | string | If browser is installed returns its executable full filename


TIBH_IE

TIBH_IE is component encapsulating retrieval of browsing history for Microsoft Internet Explorer

MiTeC.IBH.Component.IE.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_IE

Properties

UseURLHistoryAPI | published | boolean | If True, data are retrieved via URL History API ( TIBH_IE_URLHist )
UseWebCache | published | boolean | If True, data are retrieved from WebCache file(s) ( TIBH_WebCache )
CheckWebCacheDB | published | boolean | Manages underliying TIBH_WebCache .CheckDB property


TIBH_IE_IndexDAT

Components ›› TIBH_IE ››

TIBH_IE_IndexDAT is component for decoding Index.dat files produced by Microsoft Internet Explorer.

MiTeC.IBH.Lib.IndexDAT.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_IE_IndexDAT

Methods

ScanFiles

public

Scans current logged user profile for data files


TIBH_IE_URLHist

Components ›› TIBH_IE ››

TIBH_IE_URLHist is component for reading Microsoft Internet Explorer history via URL History API.

MiTeC.IBH.Lib.URLHistory.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_IE_URLHist


TIBH_WebCache

Components ›› TIBH_IE ››

TIBH_WebCache is component for decoding WebCache files produced by Microsoft Internet Explorer and Microsoft Edge.

MiTeC.IBH.Lib.WebCache.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_WebCache

Properties

BrowserID | public | TInternetBrowser
CheckDB | pub;ic | boolean

Methods

ScanFiles | public | Scans current logged user profile for data files
LoadFromFile | public | Loads data from specified file


TIBH_Edge

TIBH_Edge is component encapsulating retrieval of browsing history for Microsoft Edge.

MiTeC.IBH.Component.IE.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_Edge

Properties

CheckWebCacheDB

published

boolean

Manages underliying TIBH_WebCache .CheckDB property


TIBH_Firefox

TIBH_Firefox is component encapsulating retrieval of browsing history for Mozilla Firefox.

MiTeC.IBH.Component.Firefox.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_Firefox


TIBH_Mork

Components ›› TIBH_Firefox ››

TIBH_IE_WebCache is component for decoding WebCache files produced by Microsoft Internet Explorer and Microsoft Edge.

MiTeC.IBH.Lib.Mork.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_Mork

Methods

ScanFiles | public | Scans current logged user profile for data files
LoadFromFile | public | Loads data from specified file


TIBH_Chrome

TIBH_Chrome is component encapsulating retrieval of browsing history for Google Chrome.

MiTeC.IBH.Component.Chrome.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_Chrome

Methods

ScanFiles

public

Scans current logged user profile for data files

Properties

SQLITEDLL

published

string

Full filename representing SQLITE API DLL. You can locate and rename it as you want.


TIBH_Opera

TIBH_Opera is component encapsulating retrieval of browsing history for Opera.

MiTeC.IBH.Component.Opera.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_Opera

Methods

ScanFiles

public

Scans current logged user profile for data files

Properties

SQLITEDLL

public

string

Full filename representing SQLITE API DLL. You can locate and rename it as you want.


TIBH_Safari

TIBH_IE is component encapsulating retrieval of browsing history for Apple Safari.

MiTeC.IBH.Component.Safari.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_Safari

Methods

ScanFiles

public

Scans current logged user profile for data files


TIBH_Vivaldi

TIBH_Vivaldi is component encapsulating retrieval of browsing history for Vivaldi.

MiTeC.IBH.Component.Vivaldi.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_Vivaldi

Methods

ScanFiles

public

Scans current logged user profile for data files

Properties

SQLITEDLL

public

string

Full filename representing SQLITE API DLL. You can locate and rename it as you want.


TIBH_SeaMonkey

TIBH_SeaMonkey is component encapsulating retrieval of browsing history for Mozilla SeaMonkey.

MiTeC.IBH.Component.SeaMonkey.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_SeaMonkey

Methods

ScanFiles

public

Scans current logged user profile for data files

Properties

SQLITEDLL

public

string

Full filename representing SQLITE API DLL. You can locate and rename it as you want.


TIBH_Yandex

TIBH_Yandex is component encapsulating retrieval of browsing history for Yandex.

MiTeC.IBH.Component.Yandex.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_Yandex

Methods

ScanFiles

public

Scans current logged user profile for data files

Properties

SQLITEDLL

public

string

Full filename representing SQLITE API DLL. You can locate and rename it as you want.


TIBH_PaleMoon

TIBH_PaleMoon is component encapsulating retrieval of browsing history for Moonchild Productions Pale Moon.

MiTeC.IBH.Component.PaleMoon.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_PaleMoon

Methods

ScanFiles

public

Scans current logged user profile for data files

Properties

SQLITEDLL

public

string

Full filename representing SQLITE API DLL. You can locate and rename it as you want.


TIBH_Browsers

TIBH_IE is component encapsulating retrieval of browsing history for all supported browsers.

MiTeC.IBH.Component.Browsers.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_Browsers

Properties

SQLITEDLL | public | string | Full filename representing SQLITE API DLL. You can locate and rename it as you want.
BrowserRecordCount[ABrowserID: TInternetBrowser ] | public, read-only | integer | Number of history records collected from specified browser
BrowserEXE[ABrowserID: TInternetBrowser ] | public, read-only | string | If specified browser is installed returns its executable full filename


TIBH_EdgeChromium

TIBH_EdgeChrome is component encapsulating retrieval of browsing history for Microsoft Edge Chromium.

MiTeC.IBH.Component.EdgeChromium.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_EdgeChromium

Methods

ScanFiles

public

Scans current logged user profile for data files

Properties

SQLITEDLL

published

string

Full filename representing SQLITE API DLL. You can locate and rename it as you want.


TIBH_Brave

TIBH_Brave is component encapsulating retrieval of browsing history for Brave Browser.

MiTeC.IBH.Component.Brave.pas

TObject → TPersistent → TComponent → TIBH_Component → TIBH_Browser → TIBH_Brave

Methods

ScanFiles

public

Scans current logged user profile for data files

Properties

SQLITEDLL

published

string

Full filename representing SQLITE API DLL. You can locate and rename it as you want.


Types

TLayoutManagerControlOptions

TLayoutManagerMRUMenuClickEvent


TURLRecord

Types ››

MiTeC.IBH.Lib.Common.pas

Referenced by: TLayoutManagerControl, TLayoutManager, TLMForm, TLMFrame

TURLRecord = record

ID: string;

VisitCount: Cardinal;

FirstVisited,

LastVisited: TDateTime;

Title: string;

URL: string;

_Browser: TInternetBrowser;

_Marked,

_Checked: Boolean;

_Tag: Integer;

end;

THistory = array of TURLRecord;


TInternetBrowser

Types ››

MiTeC.IBH.Lib.Common.pas

Referenced by: TLayoutManagerMRU

TInternetBrowser = (ibNone = -1, ibIE, ibFirefox, ibChrome, ibSafari, ibOpera, ibVivaldi, ibYandex, ibSeaMonkey, ibPaleMoon, ibEdgeChromium, ibBrave);