如何获得历史记录中的信息

coolmail 2000-10-24 01:35:00
IE的历史记录保存为文件格式,如何获得这些文件的建立时间和访问次数
...全文
66 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang_jiachun 2000-10-24
  • 打赏
  • 举报
回复
首先在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.

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧