以编程方式清除 IE 缓存与 InetCpl.cpl,ClearMyTracksByProcess

2023-12-05

我有一个托管网络浏览器控件的应用程序,它使用我的微软提供的代码示例(定期)清除缓存:http://support.microsoft.com/kb/262110

然而,我注意到,一段时间后,缓存会损坏或无法正常工作(应该超出缓存的请求 - 会被一遍又一遍地调用。

当我运行以下命令时,应用程序开始正常运行。 系统('RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8')

两者是否相同,或者代码是否缺少某些内容?


在 IE9 中,我运行了 InetCpl.cpl,ClearMyTracksByProcess 8,它没有删除任何东西,所以看起来 MS 再次移动了球门柱。

下面显示的是我挑选的一些非常好的代码,应该可以在 IE7 中运行,但如果您想要在 win7 和 IE8/9 上运行的代码,请单击我的名字

public static class ClearMyTracks {
 /*
  * To clear IE temporary Internet files – ClearMyTracksByProcess 8
  * To clear IE browsing cookies – ClearMyTracksByProcess 2
  * To clear IE browsing history – ClearMyTracksByProcess 193 (ALSO deletes add on history)
  * To clear IE form data- ClearMyTracksByProcess 16
  * To clear IE remembered passwords for filling web login forms-ClearMyTracksByProcess 32
  * To clear or delete all IE browsing history – all of above!- ClearMyTracksByProcess 255
  * To clear IE Tracking- ClearMyTracksByProcess 2048
  * Preserve Favourites use 8192
  * To clear IE Downloaded Files- ClearMyTracksByProcess 16384 
  * http://www.howtogeek.com/howto/windows/clear-ie7-browsing-history-from-the-command-line/
  */

public enum ClearFlags {
  DeleteCookies = 2, 
  DeleteHistoryFiles = 8, 
  DeleteFormData = 16, 
  DeletePasswords = 32,
  DeleteHistory = 193, 
  DeleteALLHistory = 255, 
  DeleteTrackingInfo = 2048,
  PreserveFavourites = 8192, 
  DeleteDownloadHistory = 16384, 
  DeleteEverything = 22783
 };

public static void IEClearHistory(bool PreserveFavs, bool TempFiles, bool Cookies, bool History, bool form, bool passwords, bool downloads) {
  uint mask = 0;

  if (PreserveFavs)
    mask |= (uint)ClearFlags.PreserveFavourites;

  if (TempFiles)
    mask |= (uint)ClearFlags.DeleteHistoryFiles;

  if (Cookies)
    mask |= (uint)ClearFlags.DeleteCookies;

  if (History)
    mask |= (uint)ClearFlags.DeleteHistory;

  if (form)
    mask |= (uint)ClearFlags.DeleteFormData;

  if (passwords)
    mask |= (uint)ClearFlags.DeletePasswords;

  if (downloads)
    mask |= (uint)ClearFlags.DeleteDownloadHistory;

  if (mask != 0)
    System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess " + mask.ToString());
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式清除 IE 缓存与 InetCpl.cpl,ClearMyTracksByProcess 的相关文章

随机推荐