亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#實現清除IE瀏覽器緩存的方法

2020-01-24 01:33:51
字體:
來源:轉載
供稿:網友

本文實例講述了C#實現清除IE瀏覽器緩存的方法。分享給大家供大家參考。具體如下:

項目中碰到wpf webbrowser的幾個問題,在此記錄一下

1.webbrowser中對于jquery的bind事件的處理.

在普通的瀏覽器下一下這種寫法沒有任何問題

  var content = $("<div><h4><span>" + category_name + "</span>(<a id='href_" + guid + "' href='AddOrEditShowInfo.aspx?Category=" + guid + "'>添加展示</a>)" +  "<span id='edit_" + guid + "' style='font-size:12px;cursor:pointer;' onclick='showCategory(this, /""+guid+"/")'>修改分類</span>  " +  "<span id='del_" + guid + "' style='font-size:12px;cursor:pointer;' onclick=delCategory(this, /""+guid+"/")'>刪除分類</span></h4>" +  "<table class='gridview' cellspacing='0' rules='all' border='1' id='gvData' width='100%'>" +  "<thead><tr><th>縮略圖</th><th>展示名稱</th><th>簡介</th><th>詳細描述</th><th>操作</th></tr></thead>" +  "<tbody id='t_" + guid + "' class='css_tbody'></tbody></table></div>");$("#vtab").append(content);

但是在webbrowser中事件就會不響應,把content中的onclick去掉,在下面這樣綁定:

$("#edit_" + guid).unbind("click").bind("click", function () { showCategory(this, guid) });$("#del_" + guid).unbind("click").bind("click", function () { delCategory(this,guid)});

2.在webbrowser中使用jquery uploadify上傳組件的問題

使用該組件的時候 ,發現上傳圖片的時候 ,第一次上傳的時候沒有任何問題,第二次上傳的時候會出現無法上傳的情況,沒有任何反應,沒有任何錯誤,上傳進度不動,上傳的后臺代碼也不能觸發.

解決方案是:清空瀏覽器緩存就Ok 了.下面就介紹代碼清空緩存的方法

3. 清理IE緩存的方法

很明顯 IE的緩存在其目錄中顯示的并不是真正的文件所處的位置,文件的位置是在隱藏的文件夾中,而且這個隱藏的文件夾我們一般找不到.在網上幾種清空緩存的方法,在此我一一把代碼和處理的效果顯示出來.供大家參考.

①.使用ie緩存路徑來刪除緩存的

string cachePath = Environment.GetFolderPath(Environment.SpecialFolder.InternetCache);//獲取緩存路徑DirectoryInfo di = new DirectoryInfo(cachePath);foreach (FileInfo fi in di.GetFiles("*.*", SearchOption.AllDirectories))//遍歷所有的文件夾 刪除里面的文件{  try  {   fi.Delete();  }  catch { }}

效果:并沒有真正的刪除緩存文件.而且會出現很多異常,比如enguser.dat,index.dat,,,這些文件刪除的時候會出現另一個程序還在使用的錯誤

②.調用winnet.dll 清理緩存 上代碼

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Rntime.InteropServices;using System.IO;namespace WpfClient.AppCode{ public class ClearCache {  [StructLayout(LayoutKind.Explicit, Size = 80,CharSet=CharSet.Auto)]  protected struct INTERNET_CACHE_ENTRY_INFOA  {   [FieldOffset(0)]   public uint dwStructSize;   [FieldOffset(4)]   public IntPtr lpszSourceUrlName;   [FieldOffset(8)]   public IntPtr lpszLocalFileName;   [FieldOffset(12)]   public uint CacheEntryType;   [FieldOffset(16)]   public uint dwUseCount;   [FieldOffset(20)]   public uint dwHitRate;   [FieldOffset(24)]   public uint dwSizeLow;   [FieldOffset(28)]   public uint dwSizeHigh;   [FieldOffset(32)]   public FILETIME LastModifiedTime;   [FieldOffset(40)]   public FILETIME ExpireTime;   [FieldOffset(48)]   public FILETIME LastAccessTime;   [FieldOffset(56)]   public FILETIME LastSyncTime;   [FieldOffset(64)]   public IntPtr lpHeaderInfo;   [FieldOffset(68)]   public uint dwHeaderInfoSize;   [FieldOffset(72)]   public IntPtr lpszFileExtension;   [FieldOffset(76)]   public uint dwReserved;   [FieldOffset(76)]   public uint dwExemptDelta;  }  // For PInvoke: Initiates the enumeration of the cache groups in the Internet cache  [DllImport(@"wininet",   SetLastError = true,   CharSet = CharSet.Auto,   EntryPoint = "FindFirstUrlCacheGroup",   CallingConvention = CallingConvention.StdCall)]  protected static extern IntPtr FindFirstUrlCacheGroup(   int dwFlags,   int dwFilter,   IntPtr lpSearchCondition,   int dwSearchCondition,   ref long lpGroupId,   IntPtr lpReserved);  // For PInvoke: Retrieves the next cache group in a cache group enumeration  [DllImport(@"wininet",   SetLastError = true,   CharSet = CharSet.Auto,   EntryPoint = "FindNextUrlCacheGroup",   CallingConvention = CallingConvention.StdCall)]  protected static extern bool FindNextUrlCacheGroup(   IntPtr hFind,   ref long lpGroupId,   IntPtr lpReserved);  // For PInvoke: Releases the specified GROUPID and any associated state in the cache index file  [DllImport(@"wininet",   SetLastError = true,   CharSet = CharSet.Auto,   EntryPoint = "DeleteUrlCacheGroup",   CallingConvention = CallingConvention.StdCall)]  protected static extern bool DeleteUrlCacheGroup(   long GroupId,   int dwFlags,   IntPtr lpReserved);  // For PInvoke: Begins the enumeration of the Internet cache  [DllImport(@"wininet",   SetLastError = true,   CharSet = CharSet.Auto,   EntryPoint = "FindFirstUrlCacheEntryA",   CallingConvention = CallingConvention.StdCall)]  protected static extern IntPtr FindFirstUrlCacheEntry(   [MarshalAs(UnmanagedType.LPTStr)] string lpszUrlSearchPattern,   IntPtr lpFirstCacheEntryInfo,   ref int lpdwFirstCacheEntryInfoBufferSize);  // For PInvoke: Retrieves the next entry in the Internet cache  [DllImport(@"wininet",   SetLastError = true,   CharSet = CharSet.Auto,   EntryPoint = "FindNextUrlCacheEntryA",   CallingConvention = CallingConvention.StdCall)]  protected static extern bool FindNextUrlCacheEntry(   IntPtr hFind,   IntPtr lpNextCacheEntryInfo,   ref int lpdwNextCacheEntryInfoBufferSize);  // For PInvoke: Removes the file that is associated with the source name from the cache, if the file exists  [DllImport(@"wininet",   SetLastError = true,   CharSet = CharSet.Auto,   EntryPoint = "DeleteUrlCacheEntryA",   CallingConvention = CallingConvention.StdCall)]  protected static extern bool DeleteUrlCacheEntry(   IntPtr lpszUrlName)  public static void DelCache(){   // Indicates that all of the cache groups in the user's system should be enumerated   const int CACHEGROUP_SEARCH_ALL = 0x0;   // Indicates that all the cache entries that are associated with the cache group   // should be deleted, unless the entry belongs to another cache group.   const int CACHEGROUP_FLAG_FLUSHURL_ONDELETE = 0x2;   // File not found.   const int ERROR_FILE_NOT_FOUND = 0x2;   // No more items have been found.   const int ERROR_NO_MORE_ITEMS = 259;   // Pointer to a GROUPID variable   long groupId = 0;   // Local variables   int cacheEntryInfoBufferSizeInitial = 0;   int cacheEntryInfoBufferSize = 0;   IntPtr cacheEntryInfoBuffer = IntPtr.Zero;   INTERNET_CACHE_ENTRY_INFOA internetCacheEntry;   IntPtr enumHandle = IntPtr.Zero;   bool returnValue = false   // Delete the groups first.   // Groups may not always exist on the system.   // For more information, visit the following Microsoft Web site:   // http://msdn.microsoft.com/library/?url=/workshop/networking/wininet/overview/cache.asp     // By default, a URL does not belong to any group. Therefore, that cache may become   // empty even when the CacheGroup APIs are not used because the existing URL does not belong to any group.      enumHandle = FindFirstUrlCacheGroup(0, CACHEGROUP_SEARCH_ALL, IntPtr.Zero, 0, ref groupId, IntPtr.Zero);   // If there are no items in the Cache, you are finished.   if (enumHandle != IntPtr.Zero && ERROR_NO_MORE_ITEMS == Marshal.GetLastWin32Error())    return;   // Loop through Cache Group, and then delete entries.   while(true)   {    // Delete a particular Cache Group.    returnValue = DeleteUrlCacheGroup(groupId, CACHEGROUP_FLAG_FLUSHURL_ONDELETE, IntPtr.Zero);    if (!returnValue && ERROR_FILE_NOT_FOUND == Marshal.GetLastWin32Error())    {     returnValue = FindNextUrlCacheGroup(enumHandle, ref groupId, IntPtr.Zero);    }    if (!returnValue && (ERROR_NO_MORE_ITEMS == Marshal.GetLastWin32Error() || ERROR_FILE_NOT_FOUND == Marshal.GetLastWin32Error()))     break;   }   // Start to delete URLs that do not belong to any group.   enumHandle = FindFirstUrlCacheEntry(null, IntPtr.Zero, ref cacheEntryInfoBufferSizeInitial);   if (enumHandle == IntPtr.Zero && ERROR_NO_MORE_ITEMS == Marshal.GetLastWin32Error())    return;   cacheEntryInfoBufferSize = cacheEntryInfoBufferSizeInitial;   cacheEntryInfoBuffer = Marshal.AllocHGlobal(cacheEntryInfoBufferSize);   enumHandle = FindFirstUrlCacheEntry(null, cacheEntryInfoBuffer, ref cacheEntryInfoBufferSizeInitial);   while(true)   {    internetCacheEntry = (INTERNET_CACHE_ENTRY_INFOA)Marshal.PtrToStructure(cacheEntryInfoBuffer, typeof(INTERNET_CACHE_ENTRY_INFOA));      cacheEntryInfoBufferSizeInitial = cacheEntryInfoBufferSize;    returnValue = DeleteUrlCacheEntry(internetCacheEntry.lpszSourceUrlName);    string s = Marshal.PtrToStringAnsi(internetCacheEntry.lpszLocalFileName);    if (!returnValue)    {     returnValue = FindNextUrlCacheEntry(enumHandle, cacheEntryInfoBuffer, ref cacheEntryInfoBufferSizeInitial);    }    if (!returnValue && ERROR_NO_MORE_ITEMS == Marshal.GetLastWin32Error())    {     break;    }    if (!returnValue && cacheEntryInfoBufferSizeInitial > cacheEntryInfoBufferSize)    {     cacheEntryInfoBufferSize = cacheEntryInfoBufferSizeInitial;     cacheEntryInfoBuffer = Marshal.ReAllocHGlobal(cacheEntryInfoBuffer, (IntPtr)cacheEntryInfoBufferSize);     returnValue = FindNextUrlCacheEntry(enumHandle, cacheEntryInfoBuffer, ref cacheEntryInfoBufferSizeInitial);    }   }   Marshal.FreeHGlobal(cacheEntryInfoBuffer);    } }}

效果:總體來說還是有點效果的,但是效率極低,會出現長時間的等待情況,程序假死. 最重要的是不知道什么時候結束.

③.調用RunDll32.exe

RunCmd("RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8");void RunCmd(string cmd){ System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo.FileName = "cmd.exe"; // 關閉Shell的使用 p.StartInfo.UseShellExecute = false; // 重定向標準輸入 p.StartInfo.RedirectStandardInput = true; // 重定向標準輸出 p.StartInfo.RedirectStandardOutput = true; //重定向錯誤輸出 p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true; p.Start(); p.StandardInput.WriteLine(cmd); p.StandardInput.WriteLine("exit");}

效果: 這個方法解決的我的問題,緩存被清空.

以下是其他一些參數的說明:

//Temporary Internet Files (Internet臨時文件)//RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8//Cookies//RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2//History (歷史記錄)//RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1//Form Data (表單數據)//RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 16//Passwords (密碼)//RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 32//Delete All (全部刪除)//RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255//Delete All - "Also delete files and settings stored by add-ons"http://RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 4351

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品一区二区三区毛片淫片| 国产精品一区=区| 中文字幕自拍vr一区二区三区| 欧美日韩中文字幕日韩欧美| 国产欧美精品va在线观看| 国产精品免费在线免费| 亚洲欧美在线第一页| 色狠狠av一区二区三区香蕉蜜桃| 欧美日韩福利在线观看| 欧美人与物videos| 欧美国产极速在线| 91麻豆国产语对白在线观看| 亚洲免费精彩视频| 欧美整片在线观看| 最近2019年中文视频免费在线观看| 青青久久av北条麻妃海外网| 国产一区二区三区在线播放免费观看| wwwwwwww亚洲| 国产精品网站视频| 中文字幕无线精品亚洲乱码一区| 国产精品扒开腿爽爽爽视频| 欧美成人午夜剧场免费观看| 日韩在线中文字| 国产精品久久av| 午夜精品一区二区三区av| 国产精品成人观看视频国产奇米| 亚洲自拍欧美另类| 久久久免费在线观看| 欧美性猛交xxxx乱大交蜜桃| 日韩精品在线影院| 色老头一区二区三区在线观看| 97在线视频免费| 97色在线视频| 欧美乱人伦中文字幕在线| 日本道色综合久久影院| 成人免费大片黄在线播放| 国内精品中文字幕| 中文字幕日韩精品有码视频| 国产精品精品久久久久久| 亚洲人成网7777777国产| 欧美激情视频一区| 欧美日韩福利在线观看| 久久精品国产一区二区电影| 亚洲成人av片| 国产免费久久av| 在线色欧美三级视频| 精品日韩美女的视频高清| 亚洲日韩中文字幕| 国产69精品久久久久9999| 欧美一级大片视频| 国产一区深夜福利| 国产精品一区久久| 欧美片一区二区三区| 自拍偷拍亚洲在线| 中文字幕欧美亚洲| 欧美国产精品日韩| 日韩国产高清污视频在线观看| 亚洲欧美日韩一区二区三区在线| 亚洲精品一区二区三区婷婷月| 欧美在线性爱视频| 91亚洲一区精品| 精品国产一区av| 亚洲黄色在线看| 亚洲一区二区中文字幕| 色琪琪综合男人的天堂aⅴ视频| 久久国产精品视频| 91热福利电影| 日韩在线观看你懂的| 97在线观看免费| 国产日韩精品在线| 欧美日韩在线观看视频| 国内外成人免费激情在线视频网站| 成人黄在线观看| 久久精品国产一区二区三区| 亚洲精品免费av| 国产中文字幕日韩| 日日狠狠久久偷偷四色综合免费| 成人av资源在线播放| 亚洲a级在线播放观看| 久久久国产成人精品| 国产视频亚洲精品| 国产精品国语对白| 国产精品日韩专区| 日韩小视频在线| 2021国产精品视频| 性欧美亚洲xxxx乳在线观看| 亚洲精品日韩丝袜精品| 91网站在线看| 日韩欧美在线国产| 日韩久久精品成人| 在线成人激情黄色| 国产精品99导航| 视频一区视频二区国产精品| 97人人做人人爱| 欧美限制级电影在线观看| 国产一区二区动漫| 国内精品在线一区| 欧美国产日韩一区二区在线观看| 亚洲精品小视频在线观看| 色综合天天狠天天透天天伊人| 色爱av美腿丝袜综合粉嫩av| 久久久久久69| 日韩在线精品视频| 成人黄色中文字幕| 欧美成人免费视频| 欧美性感美女h网站在线观看免费| 国产日韩换脸av一区在线观看| 国产在线98福利播放视频| 亚洲电影免费观看| 久久久久久久91| 91亚洲国产精品| 日韩中文字幕国产精品| 1769国内精品视频在线播放| 国产精品海角社区在线观看| 亚洲区在线播放| 91在线观看免费| 欧美成人激情视频| 欧美黄色性视频| 国产精品自拍网| 亚洲国产日韩欧美在线图片| 国产欧美 在线欧美| 国产偷亚洲偷欧美偷精品| 亚洲精品成人久久久| 亚洲电影在线观看| 国产高清视频一区三区| 精品动漫一区二区三区| 最新69国产成人精品视频免费| 国产精品久久久久久久久久小说| 亚洲福利在线视频| 麻豆一区二区在线观看| 成人免费视频网址| 亚洲精品有码在线| 久久久亚洲天堂| 国产91在线视频| 国产精品777| 日本a级片电影一区二区| 国产精品视频男人的天堂| 亚洲欧美中文日韩在线| 日韩美女在线看| 亚洲va久久久噜噜噜久久天堂| 欧美高清激情视频| 国产精品精品久久久| 日本高清久久天堂| 亚洲午夜色婷婷在线| 91国产中文字幕| 欧美成人亚洲成人| 91免费看国产| 国产精品尤物福利片在线观看| 国产91精品高潮白浆喷水| 尤物yw午夜国产精品视频| 亚洲丝袜在线视频| 亚洲专区国产精品| 91精品国产99| 丁香五六月婷婷久久激情| 中文字幕少妇一区二区三区| 久久亚洲成人精品| 91精品久久久久久久久久久| 国产伊人精品在线| 亚洲影院污污.| 欧美在线日韩在线| 欧美成年人在线观看| 亚洲伊人第一页| 成人欧美一区二区三区黑人孕妇| 97国产精品视频|