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();
}