用API获取IE缓存文件

// usingsystem.runtime.interopservices;
[structlayout(layoutkind.sequential,charset = charset.auto)]
public struct internet_cache_entry_info
... {
public int dwstructsize;
public intptrlpszsourceurlname;
public intptrlpszlocalfilename;
public int cacheentrytype;
public int dwusecount;
public int dwhitrate;
public int dwsizelow;
public int dwsizehigh;
public filetimelastmodifiedtime;
public filetimeexpiretime;
public filetimelastaccesstime;
public filetimelastsynctime;
public intptrlpheaderinfo;
public int dwheaderinfosize;
public intptrlpszfileextension;
public int dwexemptdelta;
}

[dllimport(
" wininet.dll " ,setlasterror = true ,charset = charset.auto)]
public static extern intptrfindfirsturlcacheentry([marshalas(unmanagedtype.lptstr)] string urlsearchpattern,intptrlpfirstcacheentryinfo, ref int lpdwfirstcacheentryinfobuffersize);
[dllimport(
" wininet.dll " ,setlasterror = true ,charset = charset.auto)]
public static extern bool geturlcacheentryinfo([marshalas(unmanagedtype.lptstr)] string lpszurlname,intptrlpcacheentryinfo, ref int lpdwcacheentryinfobuffersize);
public static string getcatchfilename( string url)
... {
int nneeded = 0 ,nbufsize;
intptrbuf;
findfirsturlcacheentry(
null ,intptr.zero, ref nneeded);
nbufsize
= nneeded;buf = marshal.allochglobal(nbufsize);
geturlcacheentryinfo(url,buf,
ref nneeded);
internet_cache_entry_infocacheitem;
geturlcacheentryinfo(url,buf,
ref nneeded);
cacheitem
= (internet_cache_entry_info)marshal.ptrtostructure(buf, typeof (internet_cache_entry_info));
string res = marshal.ptrtostringauto(cacheitem.lpszlocalfilename);
return (res);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值