获取网络图片缓存的地址

 

uses WinINet;

Function TForm1.GetCacheVerifyCodeFile(VerifyCodeURL:String; Var CacheVerifyCodeFile:String):Boolean;
Var
lpEntryInfo: PInternetCacheEntryInfo;
dwEntrySize, dwLastError, Hwd: LongWORD;
i, j: Integer;
f: String;
Begin
Result := false;
dwEntrySize := 0;
j := 0;
CacheVerifyCodeFile := '';
FindFirstUrlCacheEntry(Nil, TInternetCacheEntryInfo(Nil^), dwEntrySize);
GetMem(lpEntryInfo, dwEntrySize);
Hwd := FindFirstUrlCacheEntry(Nil, lpEntryInfo^, dwEntrySize);
If Hwd <> 0 Then
Begin
    Repeat
      dwEntrySize := 0;
      FindNextUrlCacheEntry(Hwd, TInternetCacheEntryInfo(Nil^), dwEntrySize);
      dwLastError := GetLastError();
      If dwLastError = ERROR_INSUFFICIENT_BUFFER Then
      Begin
        GetMem(lpEntryInfo, dwEntrySize);
        If FindNextUrlCacheEntry(Hwd, lpEntryInfo^, dwEntrySize) Then
        begin
          If Pos(UpperCase(VerifyCodeURL), UpperCase(lpEntryInfo.lpszSourceUrlName)) > 0 Then
          Begin
            i := FileAge(lpEntryInfo.lpszLocalFileName);
            If i > j Then
            Begin
              j := i;
              f := lpEntryInfo.lpszLocalFileName;
            End
            Else
              DeleteUrlCacheEntry(lpEntryInfo.lpszSourceUrlName);
          End;
        end;
      End;
      Application.ProcessMessages;
    Until (dwLastError = ERROR_NO_MORE_ITEMS);

    If FileExists(f) Then
    Begin
      CacheVerifyCodeFile := f;
      Result := true;
    End;
End;
FreeMem(lpEntryInfo);
FindCloseUrlCache(Hwd);
End;

可用于在缓存中的验证码图片,或者防盗链的图片的采集,嘿嘿。

此函数有两个参数,第一个是网络图片地址,第二个是本地缓存地址。第二个作为输出端口。

 

转载于:https://www.cnblogs.com/toosuo/archive/2010/09/02/1815583.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值