说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB判断文件是否在IE的缓存中

HTML文档下载 WORD文档下载 PDF文档下载
VB判断文件是否在IE的缓存中
判断一个文件是否在Internet Explorer的缓存中

  当你建立一个联到网上文件的快捷方式时,你可能需要知道它是否已经被访问过,于是你就可以适当地改变链接的颜色等等。这则小技巧
就是告诉你如何判断一个文件是否在Internet Explorer的缓存中,以满足你的须要。
  新建一个项目、添加一个模块。将以下代码写到模块里:

Private Const ERROR_INSUFFICIENT_BUFFER = 122
Private Const eeErrorBase = 26720

Private Type FILETIME
  dwLowDateTime As Long
  dwHighDateTime As Long
End Type

Private Type INTERNET_CACHE_ENTRY_INFO
  dwStructSize As Long
  lpszSourceUrlName As String
  lpszLocalFileName As String
  CacheEntryType As String
  dwUseCount As Long
  dwHitRate As Long
  dwSizeLow As Long
  dwSizeHigh As Long
  LastModifiedTime As FILETIME
  ExpireTIme As FILETIME
  LastAccessTime As FILETIME
  LastSyncTime As FILETIME
  lpHeaderInfo As Long
  dwHeaderInfoSize As Long
  lpszFileExtension As String
  dwReserved As Long
End Type

Private Declare Function GetUrlCacheEntryInfo Lib "wininet.dll" _
Alias "GetUrlCacheEntryInfoA" (ByVal sUrlName As String, _
  lpCacheEntryInfo As Any, lpdwCacheEntryInfoBufferSize _
  As Long) As Long

'用来报告API产生的错误:
Private Const FORMAT_MESSAGE_ALLOCATE_BUFFER = &H100
Private Const FORMAT_MESSAGE_ARGUMENT_ARRAY = &H2000
Private Const FORMAT_MESSAGE_FROM_HMODULE = &H800
Private Const FORMAT_MESSAGE_FROM_STRING = &H400
Private Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
Private Const FORMAT_MESSAGE_IGNORE_INSERTS = &H200
Private Const FORMAT_MESSAGE_MAX_WIDTH_MASK = &HFF
Private Declare Function FormatMessage Lib "kernel32" Alias _
  "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, _
  ByVal dwMessageId As Long, ByVal dwLanguageId As Long, _
  ByVal lpBuffer As String, ByVal nSize As Long, Arguments _
  As Long) As Long

Public Function WinAPIError(ByVal lLastDLLError As Long) As String
Dim sBuff As String
Dim lCount As Long

  '返回与LastDLLError相关的出错信息:
  sBuff = String$(256, 0)
  lCount = FormatMessage( _
   FORMAT_MESSAGE_FROM_SYSTEM Or FORMAT_MESSAGE_IGNORE_INSERTS, _
   0, lLastDLLError, 0&, sBuff, Len(sBuff), ByVal 0)
  If lCount Then
   WinAPIError = Left$(sBuff, lCount)
  End If

End Function

Public Function GetCacheEntryInfo(ByVal hWnd As Long, _
  ByVal lpszUrl As String) As Boolean

Dim dwEntrySize As Long
Dim lpCacheEntry As INTERNET_CACHE_ENTRY_INFO
Dim dwTemp As Long
Dim lErr As Long

  If (GetUrlCacheEntryInfo(lpszUrl, ByVal 0&, dwEntrySize)) = 0 Then
   lErr = Err.LastDllError
   If (lErr <> ERROR_INSUFFICIENT_BUFFER) Then
     '预料外的错误。须要显示出错原因:
     Err.Raise eeErrorBase + 1, _
      App.EXEName & ".mCacheEntry", WinAPIError(lErr)

     GetCacheEntryInfo = False
     Exit Function
   Else
     '这是预料中的错误
     GetCacheEntryInfo = True
   End If
  End If

End Function


在窗体上添加一个Command和一个Text。然后加入这些代码:

Option Explicit

Private Sub Command1_Click()
On Error Goto ErrorHandler
  '检查Text中的URL地址是否出现在缓存中:
  If (GetCacheEntryInfo(Me.hWnd, Text1.Text)) Then
   MsgBox "URL In Cache.", vbInformation
  Else
   MsgBox "URL Not In Cache.", vbInformation
  End If

Exit Sub

ErrorHandler:
 MsgBox "URL Not in Cache [" & Err.Description & "]",vbInformation

End Sub

  运行,在Text中键入一个URL地址(比如,http://www.vbaccelerator.com/index.html)当你按下Command按钮时,就会得到一则消息报告URL在不在缓存中。如果Windows给出了URL没找到的原因,它将被显示在随后的的方括号内。
未来的存储系统设计——PMC技术交流会举行 第五届中国云计算大会PPT尝鲜:十位专家分享的架构实践 “DIY”可穿戴设备:索尼开放智能手表固件 在微软的八个月里,我学到了这些 谷歌实习生每月都拿$6000,你呢? 【第五届中国云计算大会】由瓦特变比特输出,新疆要做中亚云服务中心 应用程序扩展性实现的十宗罪 图文:看谷歌实习生的惬意生活 为移动而设计:交互设计篇 小米游戏中心月度报告:极品、神庙、找你妹 中科院:常温下的液态金属电路3D打印机 细数IE10里的HTML5特性 使用Twitter Bootstrap的五大理由 Twitter重塑API战略 开启V1.1时代 Sony开放SmartWatch 支持第三方定制固件 甩啦甩啦!Apptopia帮开发者在线买卖App所有权 聚焦全球移动市场:印度,这块肥肉不太肥 Google决定明年一月份停止对Chrome Frame支持与更新 你应该关注的几个Eclipse超酷插件 华为王丰:FusionCube打造下一代融合一体机 上海云人联合创始人吴朱华:中国人也能做出最好的实时数据库产品 Facebook RSS替代Google Reader?或因其社交属性失败 让这么多国外开发者如此兴奋,iOS 7到底好在哪里? Web开发中那些不招人“待见”的功能 最好的超级计算机在中国 为开发者提供的10款Web应用程序 5000万次下载:HandyGames如何征服Google Play? 红帽大战Ubuntu:750小时免费企业版红帽套餐即将登陆AWS EMC Sanjay Mirchandani:92%虚拟化,使更少IT人拥有更大交付能力 从NSA携谷歌、微软等9家名企监控用户行为看数据安全 【专访间】新科兰德创始人左磊:我们的“卖点”是“数据弹药” 如何刷新文件内容的缓冲? 昨天一夜星际~~~后 一个捉摸的问题,、高分请解决! 在WEBLOGIC5.1上发布EJB1.1的一个小问题 请教,如何用jbuilder 写midas的服务器, 我们公司一个程序员的头式太难看了,我每次见他就恨不得拿剃头的推子给他剃光光! 寻最好的ftp软件 autoCAD的问题 找本站里面《程序员测试软件》的注册码 刚毕业的不能报? .lib 文件到底是怎么回事?如何查看它的内容? 请问,下面的警告提示什么意思(关于sybase) 那位可以给我描述一下“代表”? 请问有WINsock编程高手么,帮我看一下下面的程序 紧急招聘PB程序员(成都) 关于产品序列号的问题……想了很久了。 这里有几个问题,能者请进! 请教VC项目开发经验 如何让下载的程序变成免费的? 请问有Pdf到Text的转化的源代码么? 能否让下载的程序变成免费的? 请问怎样才能自动复制文本框中的文本到剪贴板? 是否可用简体中文的VB开发翻体中文的应用程序? 使用JavaMail转发邮件 在servlet中是不是不可以引用其它的类中的函数.(这个类不是派生于HttpServlet) 为什么买书配送的光盘文件在BCB工程中打开后不让修改(打开前已转换为存档文件了)? 请教使用OPEN CLIENT 的一个小问题 索求算法 请问能否将下载的程序变成免费的? 现在学习C#不晚吧,:P 关于VB中控制运行实例的问题 请教关于DBGRid的问题。 请问在Java下如何实现文件压缩?有没有现成的接口或者压缩算法代码?多谢 这里下载C#电子书《C#教程》(中文 希望出版社) 我如何才能删除ORACLE中建立的用户??总是提示用户不存在或SQL第归错误等等!! CSDN灌水乐园的惊世大骗局!!CSDN灌水乐园的惊世大骗局!!CSDN灌水乐园的惊世大骗局!! 如何用简体中文VB开发翻体中文软件? 高分请教!!!! 一定加分!!!1111111 在打印或打印预览前如何获取报表页数 求助.希望有人帮忙!! 我用ACTIVE REPORT出了问题....相教 请问如何获得硬盘的序列号? 请问各位,有什么好的方法来为用户分配权限,要多少分就给多少? 我有一个www.cnjava.com,有没有人愿意要这个域名? 请问Delphi中关于fropro数据库的软删除问题!急用!谢谢! 当两个表用主键关联时,删除主表的一条记录,关联表对应的记录能不能自动删除(不用代码)? 大家来谈谈各自在制作网页时的css于inc的运用吧 小弟对Java及C#的一点看法-请大家指正! 高手请进,帮我看看这是什么意思?感谢非常 基于组件的三层应用程序怎么打包?200分相赠!!! 如何执行带OUT参数的ORACLE的存储过程 修一条路,第一天修了全长的3分之1,第二天修了全长的4分之1,两天共修了84米,这条路全长多少米? 某工人三天做完一批零件,第一天做了84个,第二天做了余下的2/7,第三天和前两天做总数一样多,这批零件有几算式 工程队用了2天修了一条路,第一天完成全程的百分之50还多72米,第二天修的相当于第一天修的5分之3,这条路全长多少? 修一条路,第一天修了全长的8分之3,第二天修了全长的4分之1,两天共修了1500米,这条路长多少米? 小王三天做完一批零件,第一天做了总数的1/4,第二天比第一天多做了5个,第三天做了25个这批零件有多少个 工程队用两天时间修完一条路,第一天完成全程50%多72米,第二天修的是第一天修的3/5,这条路长多少米?不要方程 筑路队修一条路,第一天修了全长的1/20,第二天比第一天多修了o.5千米,两天共修了4千米.这条路 王师傅用3天共加工零件1200个,他第一天加工了总数的3分之1,第二天加工了余下的8分之3,第3天加工多少个 工程队修一条路每天修72米,28天可以修完,如每天修96米,多少天能修完?以---为等量关系,设X天修完,方程是: 筑路队修一条路 第一天修了全长的1/20,第二天比第一天多修了0.5千米,两天共修了4千米.这条路全 某工人1月份生产某零件1200个 修路队用两天时间完成一条公路,第一天修了全程的50%还多72米,第二天修的相当于第一天修的1/3这条公路长多少米(方程) 修路,第一天修了这条路的3/8,第二天修的路程比第一天少了总路长的1/16,两天一共修了这条路的几分之几? 某车间原计划加工1200个零件,实际第一天完成了原计划的3/8 ,第二天完成了原计划的5/12,第三天加工的是前两天的和,实际超过原计划的几分之几? 工程队修一条路,第一天修了全长的5分之2,第二天修了全长的百分之25,还剩154米没修,这条路全长多少米? 修路队修一条公路,第一天修了这路的1/4,第二天修了余下的2/3,两天共修了1200米,这条路全长多少米?的解方程的详细过程 王师傅要加工一批零件,第一天完成计划的58 ,第二天完成计划的712 ,实际完成的超过原计划的几分之几?怎怎么做 工程队修一条路,第一天修5分之1,第二天修4分之1,第二天比第一天少修25米这条路有多少米?工程队修一条路,第一天修总路程的5分之1,第二天修总路程的4分之1,第二天比第一天少修630米这条路 修一条公路,第一天修了全长的1/4,第二天比第一天多修20米 还剩100米 两天共修了全长的几分之几 红旗车间三天生产了一批零件,第一天生产了总数的 ,第二天比第一天多生产20个,第三天生产了55个.这批零 工程队修一条路,第一天修了全长的5分之1,第二天与第一天所修的长度比是4比3,这时还剩下600米没修,这条路全长多少? 先不加分,等回答完加 修一条1200米的路,第一天修了全长的3分之1,第2天修了4分之1两天共修了几分之几,两天修了多少米 红旗车间三天生产了一批零件,第一天生产了总数的七分之二,第二天比第一天多生产了20个,第三天生产了55个这批零件宫有多少个? 工程队已修了一条路的3/8,还剩下1000米没修,要修的这条路长多少米? 一条路,第一天修了全长的4分子1,第二天修了全长的5分之1,(),这条路长多少米?(1)500除以4分之1 条件:()(2)400除以5分之1 条件:()(3)1100除以(1-4分之1-5分之一)条件:()(4)900除以 李师傅三天完成一批零件的加工任务.第一天加工的零件数与总零件数的比是2:9,第二天加工了180个零件,前李师傅三天完成一批零件的加工任务。第一天加工的零件数与总零件数的比是2:第 李师傅计划三天内运完一批货物,第一天运了42吨,占这批货物的五分之二,第二天与第三天的运货量之比是4:3.李师傅第二天运货多少吨. 有一条路第一天修5/1第二天修4/1还剩33米问这条路原来多长 李师傅3天完成一批零件的任务.第一天加工的零件数与总零件数的比是2:9,第二天加工了180个零件,前两天加工的零件数正好占总零件数的2—.李师傅第一天加工了多少个零件?3 搬运工计划三天内运完一批货物,第一天运了42吨,占这批货物的5分之2,第二天与第三天的运量比是4比3,第二天运多少吨 修一条路,第一天修这条路的2分之1还多2千米,第二天修余下的3分之1少1千米还剩20千米,求这条路的长度! 李师傅三天完成一批零件的加工任务,第一天加工的零件数与未加工零件数的比2:7,第二天加工180个零件,前两天加工的零件数正好占零件总数3分之2,李师傅第一天加工了多少个零件?容易看懂~ 青年运输队计划3天运完一批货物.第一天运480吨,占这批货物的40%.第二天运的和第三天运的比是3比5.问:第三天的货物有多少吨? 修一条路,第一天修了五分之一,第二天修了150米,两天共修了七分之二,这条路有多长?谁知道? 小李四天做完一批零件,第一天和第二天共做了54个,第二天,第三天,第四天共做90个,已知第二天做的个数占这批零件的五分之一,这批零件有多少个? 某建筑队计划3天修完一条公路,第一天修了全长的五分之二,第二天修的是第一天的百分之八十,第二天比第一天少修120米问这条路长多少米?第三天修了多少米?怎么列式谢谢 一条路全长1200米,第一天修了全长的五分之一,第二天修了全长的四分之一.一条路全长1200米,第一天修了全长的五分之一,第二天修了全长的四分之一,两天一共修了多少米?第二天比第一天多修 小李四天做完一批零件,第一天和第二天共做了54个,第二,第三和第四天共做了90个,已知第二天做的个数占这批零件的5分之1,这批零件一共有多少个? 修路队计划修一条长1500m的公路,第一天修了全长的五分之二,第二天修了全长三分之一,还剩下多少米 修一条路,第一天修了全长的1/2,第二天修的是第一天的2/3,还剩几分之几没修?大哥大姐, 小李四天做完一批零件,第一天和第二天共做了54个,第二天、第三和第四工共做了90个,已知第二天做的个数占这批零件的5分之一,这批零件共有多少个? 市公路管理计划修一条全长200千米的公路,第一天计划修全长的五分之二,余下的第二修完,第二天计划修多少千 修路工人修一条路,第一天修了这条路的4分之1,第二天修了余下的3分之1,工人两天共修了这条路的几分之几? 张师傅四天做完一批零件,第一天和第二天共做了54个,第二、第三、第四天共做了90个,已知第二天做的占这批零件的五分之一.这批零件共有多少个? 王师傅计划3天内运完一批货物,第一天运了42吨,占这批货物的2/5,第二天与第三天的重量比是4:3第二天运货多少吨(要有详细的算式) 一个修路队修一条路,第一天修了25米,第二修了全长的62.5%少4米,两天修了全长的80%.这条路全长多少米? 王师傅3小时制作了48个机器零件,照这样计算,制作80个零件,需要多少小时? 码头上有一批货物,计划三天运完.第一天运走了全部的五分之三,第二天运走了五分之三吨,第三天还要运四分之三吨.第二天和第三天共运了多少吨?第二和第三天共运的是这批货物的几分之几? 修路队修一条路,第一天修了480米,比第二天多修了20%,第二天修多少米?两天一共修了多少米? 王师傅4小时制作了96个机器零件,照这样计算,制作72个零件需要多少小时?(用方程解) 王师傅计划3天内运完一批货,第一天运了42吨,占这批货的5分之2,第二天与第三天运的重量比是4:3,第二天运多少吨?(上下接着的)急, 修路工人要修一条路,第一天修了520米,相当于第二天修路米数的80%两天一共修了多少米?请说明为什么谢谢. 两台机器生产同一种零件,第一台3分之一小时生产20个零件,第二台每小时生产80个零件.两台机器同时生产70两台机器同时生产70个零件需要几小时. 某工人计划在3天内加工完一批零件,第一天加工480个,占这批零件的40%,第二天与第三天加工零件数的比是2: 工人师傅修一条路,已修的是未修的路的80%,已修的路与未修路的比是()要说理由啊 某车间计划加工一批零件,第一天加工了计划总数的1/4,第二天比第一天多加工1/3,第三天比第一天少加工1/3某车间计划加工一批零件,第一天加工了计划总数的1/4,第二天比第一天多加工1/3, 某工厂计划在3天内加工完一批零件,第2天加工了480个,占这批零件的五分之二,第二天与第三天加工的个数比是3比5,第二天加工了几个? 某修路队修一条路,第一天修了全长的1/20,第二天比第一天多修1/5千米,两天共修2.7千米,这条路全长多少千米? 工人师傅加工一批零件用了3天,第一天加工的零件时零件总数的5分之2,第二天加工的零件时零件总数的7分之2第3天加工的零件时零件总数的几分之几? 某工程队修一条路,第一天修了全长的5/27;第二天修了某工程队修一条路,第一天修了全长的5/27,第二天修了余下的3/11,第三天修了第二天余下的5/6,第四天修了8千米,正好修完.求这条路全长多
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn