读书人

请教:怎么获取ie的历史记录

发布时间: 2012-01-29 21:39:32 作者: rapoo

请问:如何获取ie的历史记录?
RT

[解决办法]
http://topic.csdn.net/t/20001127/04/42825.html
[解决办法]
小李同学,IUrlHistoryStg2和IEnumSTATURL接口在WM上可以用么?
MSDN给出的条件是:
Minimum availability Internet Explorer 5.5
Minimum operating systems Millennium, Windows 2000

楼主试试FindFirstUrlCacheEntryEx和FindNextUrlCacheEntry函数吧。
WinInet下面的函数楼主查查MSDN。

下面找到的代码是VB的,楼主参考一下吧。

VB code
uses   wininet;         procedure   TForm1.Button1Click(Sender:   TObject);     var         cache_info:PInternetCacheEntryInfo;         cbSizeOf_Cache_info:dword;         hw:hwnd;         buf:tstrings;     begin     //     buf:=tstringlist.Create;         new(cache_info);         hw:=FindFirstUrlCacheEntryEx(nil,0,NORMAL_CACHE_ENTRY   or   URLHISTORY_CACHE_ENTRY,0,cache_info,@cbSizeOf_Cache_info,nil,nil,nil);         if   hw<>0   then         begin             DeleteUrlCacheEntry(cache_info.lpszSourceUrlName);     //         buf.Add(cache_info.lpszSourceUrlName);             while   FindNextUrlCacheEntryEx(hw,cache_info,@cbSizeOf_Cache_info,nil,nil,nil)   do     //             buf.Add(cache_info.lpszSourceUrlName);                 DeleteUrlCacheEntry(cache_info.lpszSourceUrlName);         end;         FindCloseUrlCache(hw);         dispose(cache_info);     //     showmessage(buf.Text);     //     buf.Free;     end;
[解决办法]
我写过一段清除手机IE历史记录的代码,还有些小问题,后来发现这个功能不需要就放下没完善了,不过基本思路你可以参考一下:
HANDLE hEntry;
LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry = NULL;
DWORD dwEntrySize = 0;

hEntry = FindFirstUrlCacheEntry(NULL, NULL, &dwEntrySize);
lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO) new TCHAR[dwEntrySize];
hEntry = FindFirstUrlCacheEntry(NULL, lpCacheEntry, &dwEntrySize);
if(hEntry)
{
do
{
DeleteUrlCacheEntry(lpCacheEntry->lpszSourceUrlName);
dwEntrySize = 0;
FindNextUrlCacheEntry(hEntry, NULL, &dwEntrySize);
delete [] lpCacheEntry;
lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO) new TCHAR[dwEntrySize];
}while (FindNextUrlCacheEntry(hEntry, lpCacheEntry, &dwEntrySize));
}

读书人网 >Windows Mobile

热点推荐