返回首页

{S0}简介
这是一个小程序,它可以帮助你看到你您的Internet Explorer店。此外,它可以让你删除一些文件。背景
为什么选择这个项目? Internet Explorer允许你删除它的高速缓存,在浏览器的历史和你的cookies。因此,出于什么原因,你应该需要这个程序?
好了,不幸的是,提到删去只有一半的真理。事实上,在Internet Explorer中删除您的高速缓存意味着,只有你的缓存文件将被删除。这些文件是在用户目录下.. \ Temporary Internet Files文件\ Content.IE5子目录中,有像quot等有趣的名字; 09WJE130quot;
,但还有另外一个文件,其中包含所有您访问互联网上的联系,它们存储很长很长的时间:"index.datquot;
这个文件通常有一些MB的大小。如果用文本编辑器打开它,然后向下滚动,你会发现一种可读的形式上百个链接。 :这个文件将永远不会被删除的Internet Explorer
所以我写了这个方案透露,关于您的浏览器存储。我想给你删除这些烦人的文件的可能性。使用代码
正如你可以看到在上面的图片,主程序包含六个TabPages的TabControl。每个TabPages让您浏览器的文件管理的特殊组成部分。
所以让我们从的TabPage的浏览器的网址历史,看来后程序开始
背景:。如果你将删除在Internet Explorer浏览器的历史,所有的以前的访问在您的浏览器的下拉列表中的链接会消失开始。所有这些环节都存储在注册表下quot; HKEY_CURRENT_USER \ SOFTWARE \ MICROSOFT \的Internet Explorer \ TypedURLsquot;和删除后,所有的键和值都不见了。但有时,它是非常有用的不删除它们,或存储在自己的名单,他们重用他们(OK,有一个我的最爱,我知道...).因此,我已经介绍了两份清单:实际的浏览器的历史和文件,这店我个人的名单。以上
内的TabPage的功能允许你删除浏览器的历史部分,存储在您的个人列表中的某些环节或从您的个人列表的history.nbsp恢复联系,你可以在下面的seenbsp;的功能,这从注册表中获取TypedURLs,并将它们存储在ListView。

// registry branch for typed URLs (browser history)

public const string REG_URL = "SOFTWARE\\MICROSOFT\\INTERNET EXPLORER\\TYPEDURLS";

// registry branch for Internet Explorer

public const string REG_URL_SHORT = "SOFTWARE\\MICROSOFT\\INTERNET EXPLORER"; 
{C}
// Holds all values (URLs) from the registry browser's history

public static SortedList<int, histlink> historylinks = new SortedList<int, histlink>();

/// <summary>

/// Gets all the URL links from the registry and stores them in the 

/// SortedList historylinks.

/// </summary>

public void GetHistory()

{

  historylinks.Clear();

  using (RegistryKey tempKey = Registry.CurrentUser.OpenSubKey(REG_URL))

  {

    if (tempKey == null)

    {

      // try to set the registry entry

      using (RegistryKey tempKeyShort = 

      Registry.CurrentUser.OpenSubKey(REG_URL_SHORT, true))

      {

        if (tempKeyShort == null)

        {

          System.Windows.Forms.MessageBox.Show(

          "The registry entry for " + REG_URL_SHORT + " does not exist!",

          "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

          return;

        }

        else

        {

          tempKeyShort.CreateSubKey("TypedURLs", 

                                    RegistryKeyPermissionCheck.ReadWriteSubTree);

        }

      } // using

    } // if

  } // using

  // try it again

  using (RegistryKey tempKey = Registry.CurrentUser.OpenSubKey(REG_URL))

  {

    if (tempKey == null)

    {

      System.Windows.Forms.MessageBox.Show(

      "The registry entry for " + REG_URL + " does not exist!",

      "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

      return;

    } // if

    // get all keys

    string[] vals = tempKey.GetValueNames();

    int itemcounter = 0;

    foreach (string url in vals)

    {

      object keyValue = tempKey.GetValue(url);

      if (keyValue != null)

      {

        histlink hl = new histlink();

        string entry = keyValue.ToString();

        if (entry.Length != 0)

        {

          itemcounter++;

          hl.Entry = entry;

          hl.URL = url;

          historylinks.Add(itemcounter, hl);

        } // if

      } // if

    } // foreach

  } // using

} // GetHistory

第二个TabPage的缓存显示浏览器的缓存。一方面,有如上所述,例如大量的缓存文件30667 MB 7991缓存文件。您可以通过按下按钮quot中删除;删除缓存filesquot;另一方面,你可以有一些洞察到quot; index.datquot;按";显示Index.datquot。由于这个文件是由许多进程锁定,这是不容易将其删除。所以,我实现了一个功能quot; DeleteCacheIndexDatquot;,这标志着该文件被删除重新启动(按钮"上rebootquot删除;)。这个函数是一个包装MoveFileEx:
// delete file on reboot

[System.Runtime.InteropServices.DllImport("kernel32.dll")]

private static extern bool MoveFileEx(string lpExistingFileName, 

                                      string lpNewFileName, int dwFlags);

const int MOVEFILE_DELAY_UNTIL_REBOOT = 0x00000004;

MoveFileEx(fileName, null, MOVEFILE_DELAY_UNTIL_REBOOT);

您可以存储在您的个人列表中的一些环节。要做到这一点,选择的联系,并按下"储存selectedquot;较低的ListView的TabPage quot;浏览器的网址historyquot;,其中包含您的个人联系,会立即更新。
第三TabPage的历史(自动填充)显示浏览器的历史,这是在quot夫妇存储; index.datquot;文件在您的quot;本地设置\ \ History.IE5quot;目录和子目录。这些目录中的链接是负责在浏览器的下拉列表自动填充机制。这些文件(旧的),有些可以立即被删除,该有的都有quot删除; MoveFileExquot;使用按钮quot;显示historyquot;和quot;上删除rebootquot;观看和删除的链接
还可以,如上所述,存储一些链接到您的个人网址列表。
第四TabPage的饼干显示您的Cookie。它们都存储在一个文件中的quot; index.datquot;你quot; Cookiesquot;目录,并作为单个TXT文件,其中每一个cookie。同样,quot; index.datquot;只能在重新启动时被删除,但quot;。txtquot;可以删除cookie文件逐个。如果按"显示的cookie filesquot;,饼干和三线将会显示在ListView。第三行包含cookie的URL。使用按钮quot;上rebootquot删除;删除cookie的Index.dat文件
再次,在这里你可以超越一些链接到您的个人网址列表。
第五TabPage的最新名单显示您最近使用的文件列表。这些都不是特定的浏览器的链接,但他们 - 有时 - 太烦人。您可以选择和紧迫quot摆脱他们(或部分);删除selectedquot。顺便说一句:这些链接在你的quot; Recentquot;目录和后缀quot; lnkquot;{S1}
删除第六TabPage的所有功能,删除所有的东西,一气呵成。通过取消一些项目,可以减少整体删除。删除进度显示一个进度条。一些代码备注
不要有一个大文件中的所有代码,我已经划分成几部分,这意味着每一个TabPage的有它自己的源文件。你可以很容易辨别的部分,因为它们有相同的名称作为TabPages。所有这些源文件的类主要的部分:
public partial class Main : Form 

该方案已经过测试,在微软XP与Internet Explorer 6.0和7.0和Vista家庭高级使用Internet Explorer 7.0。我已经开发了与Visual Studio 2005的解决方案,但它似乎与Visual Studio 2008以及。
展望 - 做什么:
这将是很好,如果有人可以帮我证明文件,被几个进程锁定,可以立即删除。这应该做的,尤其是对index.dat文件,以避免在重新启动时删除。历史3月3日,2009年 - 第一版本

回答

评论会员:lex_yacc 时间:2012/01/24
!非常感谢您
评论会员:keibel 时间:2012/01/24
!谢谢你这个有用的代码,太多
评论会员:贾马尔Alqabandi 时间:2012/01/24
尼斯之一... ... 5 {S2}

谢谢
评论会员:Lion_King1109 时间:2012/01/24
最后,我发现关于IE浏览器的一个伟大TUTS使用C#你得我5!

我不可能=
评论会员:李汉弗莱斯 时间:2012/01/24
伟大的小工具 - 与其他浏览器(如火狐)做相同的任何指针?

我爱考拉 - 他们去培根的伟大
评论会员:托马斯丹泽尔 时间:2012/01/24
喜李汉弗莱斯,

事实上,我已经计划为Firefox做同样的工作,但我之前做一些研究。
乍一看,我看到,Firefox可以配置的方式离开时的文件删除,所以没有采取行动的需要为IE浏览器。
例如缓存文件没有扩展名(如HTM,JPG ...)...{ BR}
也许我会很快发布一个Firefox版本
评论会员:李汉弗莱斯 时间:2012/01/24
这是事实,火狐让你做了很多与历史 - 但不幸的是它仍然非常蛮力"删除一切"的方针。我喜欢你的工具是能够编辑的历史。

我爱考拉 - 他们去培根的伟大
评论会员:xrzs 时间:2012/01/24
是C版本
评论会员:托马斯丹泽尔 时间:2012/01/24
您好,
?对不起,我写的程序在C#只和有没有C代码。
让我给你一些提示:
该方案是不是很难理解为主,三个功能部分组成:
- GUI部分:只有几个控件,我已经使用,如TabControl的单选按钮,按钮,和ProgressBar。他们使用C相似,所以如果我希望将它移植到C,我将开始与TabControl的实施一前一后的TabPage(和它的功能)。
- 注册表的访问,阅读和写:它不​​应该是C和C#之间的差异较大,同时作为语言相关的
。 - 在重启后删除文件:MoveFileEx是一个API函数(kernel32.dll),你可以使用它在C以及
。我试图在我的代码,并希望写的一些意见,他们是可以理解的,这么好运,托马斯
评论会员:xrzs 时间:2012/01/24
谢谢你!我要为你写一个VC程序,
您的代码将极大地帮助我
评论会员:。stevenyoung 时间:2012/01/24
关于C#,我知道一点点,不明白的一些代码。谁能翻译下面的代码VB.NET?谢谢你。
////////////////////////////////////////////////// ////////////////////////////{ BR}(INT C = 0;彗星LT; buffer.Length - 4,C)
& #160; {
((缓冲[C] =='H')(缓冲[C 1] =='T')(缓冲[C 2] =='T')(缓冲[C 3] =='P'))
{
早产字符串="";
(升= C;升LT; buffer.Length; L)
{
 0; 字节闪烁=缓冲区[L]
  ; ((='%')(闪烁=(闪烁LT)闪烁!'吗?"; = 127))
&# 160; {
& #160; 早产=(char)的(闪烁);
 60; }
ELSE
{
 60; C = L;
 60; (slink.Length GT; 4)
& #160; {
字符串url_l = slink.ToLower()。修剪(delim.ToCharArray ());{ BR}  60; 如果(links.ContainsKey(url_l)!)links.Add(url_l,url_l)
 60;}
打破;
& #160; }
  ; } / /
} / /如果HTTP

} / /
评论会员:爪Jershauge 时间:2012/01/24
试试这个:

For c As Integer = 0 To buffer.Length - 5

    If (buffer(c) = "h"c) AndAlso (buffer(c + 1) = "t"c) AndAlso (buffer(c + 2) = "t"c) AndAlso (buffer(c + 3) = "p"c) Then

        Dim slink As String = ""

        For l As Integer = c To buffer.Length - 1

            Dim blink As Byte = buffer(l)

            If (blink <> "%"c) AndAlso (blink <> "?"c) AndAlso (blink <= 127) Then

                slink += CChar((blink))

            Else

                c = l

                If slink.Length > 4 Then

                    Dim url_l As String = slink.ToLower().Trim(delim.ToCharArray())

                    If Not links.ContainsKey(url_l) Then

                        links.Add(url_l, url_l)

                    End If

                End If

                Exit For

            End If

        Next

    End If

Next

或下一时间,请谷歌的C#,VB.Net转换:

伟大的代码,也带来了很大的复杂性,所以保持简单愚蠢的... {五}"/> {五}"/>
评论会员:stevenyoung 时间:2012/01/24
谢谢你,我知道该怎么办

对于C作为整数= 0至buffer.Length - 3
  ; 如果缓冲区(C)= AscW会("H")AndAlso缓冲区(C 1)= AscW会("T")AndAlso缓冲区(C 2)= AscW会("T")AndAlso缓冲区(C 3)= AscW会("P" )
昏暗的早产作为字符串="
  ; DIM L为整数= C
& #160; 对于L = C至buffer.Length - 1

 0; 昏暗的闪烁作为字节=缓冲区(L)
& #160; 如果闪烁LT,GT,LT AscW会("%") AndAlso闪烁; GT; AscW会("?") AndAlso闪烁LT = 127
 0; 早产= ChrW的(闪烁)
 60; ELSE
& #160; C = L
 60; 如果(slink.Length GT; 4)
  ; DIM url_l的String = slink.ToLower
 0; Alllinks.Contains(url_l)= false,那么
  ; Alllinks.Add(url_l,url_l)
&# 160; 最终如果
& #160; 最终如果
& #160; 退出对于
 0; 最终如果
 60; 下一步
最终如果
  ; 下一步
评论会员:VDJ 时间:2012/01/24
尝试:如Visual Basic
粘贴一个Visual Studio外接在C#代码转换到Visual Basic