首页  编辑  

取得IE的历史记录信息

Tags: /超级猛料/OS.操作系统/IE.扩展/历史记录、Cache、收藏夹、Cookie/   Date Created:

]、。·ˉˇ¨〃々—~‖…’”〕〉》」』〗】∶!"'),.:;?]` IE的历史记录保存为文件格式,如何获得这些文件的建立时间和访问次数?

首先在uses部分包括WinInet单元,你会发现里面有这样一个函数:

function GetUrlCacheEntryInfo(lpszUrlName: PAnsiChar;

 var lpCacheEntryInfo: TInternetCacheEntryInfo;

 var lpdwCacheEntryInfoBufferSize: DWORD): BOOL; stdcall;

但这种声明方式不易使用(你可以试一下),但可以改成如下声明:

 function MyGetUrlCacheEntryInfo(lpszUrlName: PAnsiChar;

   lpCacheEntryInfo: PInternetCacheEntryInfo;

   lpdwCacheEntryInfoBufferSize: PDWORD): BOOL; stdcall; external 'wininet.dll' name 'GetUrlCacheEntryInfoA';

下面是一个简单的范例,希望能对你有所帮助。

procedure ShowCacheInfo;

var

 dwCacheEntryInfoBufferSize: DWORD;

 lpCacheEntryInfo: PInternetCacheEntryInfo;

begin

 //第一次调用,返回需要的字节数在dwCacheEntryInfoBufferSize中

 dwCacheEntryInfoBufferSize := 0;

 MyGetUrlCacheEntryInfo('http://www.scmp.net/', lpCacheEntryInfo,

   @dwCacheEntryInfoBufferSize);

 //由第一次调用得到的返回值,分配足够的内存空间,然后第二次调用

 GetMem(lpCacheEntryInfo, dwCacheEntryInfoBufferSize);

 try

   //如果调用成功,返回的信息在lpCacheEntryInfo中

   if MyGetUrlCacheEntryInfo('http://www.scmp.net/', lpCacheEntryInfo,

       @dwCacheEntryInfoBufferSize) then

   begin

     //lpCacheEntryInfo是指向INTERNET_CACHE_ENTRY_INFOA结构的指针,参考WinInet

     //单元内INTERNET_CACHE_ENTRY_INFOA结构的定义,那里面有你想要的一切,下面将

     //显示点击次数。

     ShowMessage(IntToStr(lpCacheEntryInfo.dwHitRate));

   end;

 finally

   freemem(lpCacheEntryInfo);

 end;

end;

end.

请问如何获得ie中历史的信息

用IUrlHistoryStd2 接口可以实现,在VC的文档中没有这个接口的描述,不过你可以取看VC的源程序和头文件。

   如下面是在记录中添加50条

   IUrlHistoryStg2* pUrlHistoryStg2 = NULL;

   HRESULT hr = CoCreateInstance(CLSID_CUrlHistory,

           NULL, CLSCTX_INPROC, IID_IUrlHistoryStg2,

           (void**)&pUrlHistoryStg2);

   if (SUCCEEDED(hr))

   {        

       char a[200];

       char b[200];

       strcpy(a,"www.csdn.net");

       strcpy(b,"test");

       hr=pUrlHistoryStg2->AddUrl((LPCOLESTR)(&a),(LPCOLESTR)(&b),0);

       pUrlHistoryStg2->Release();

   }