实现对地址栏中的历史记录进行删除的操作,以及运行对话框的历史运行记录的删除.

现在网上提供的清除历史记录一般都是全部删除,如果有时候只想删除某条记录,可以考虑使用以下方法.
实现对地址栏中的历史记录进行删除的操作,以及运行对话框的历史运行记录的删除.
其实就是找出历史记录在注册表中的位置,然后操作注册表,删除之.
注意:运行对话框的历史记录删除需要注销系统后才起作用.
using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using Microsoft.Win32;





namespace Zhouzy

{

    public partial class ClearNetRecord : Form

    {

        string CLEARURLRECORD = "Software//Microsoft//Internet Explorer//TypedURLs";

        string CLEARRUNRECORD = "Software//Microsoft//Windows//CurrentVersion//Explorer//RunMRU";

        public ClearNetRecord()

        {

            InitializeComponent();

        }



        private void ClearNetRecord_Load(object sender, EventArgs e)

        {

            tpClearAddress.Select();

            LoadAddressRecord();

            LoadRunRecord();

        }



        private void btClearSelAddress_Click(object sender, EventArgs e)

        {

            RegistryKey key = Registry.CurrentUser;

            RegistryKey subkey = key.CreateSubKey(CLEARURLRECORD); 

            for (int i = lbAddressList.Items.Count-1; i >= 0; i--)

            {

                if (lbAddressList.GetSelected(i))

                {

                    string strValue = lbAddressList.Items[i].ToString();

                    int nPos = strValue.IndexOf(':');

                    strValue = strValue.Substring(0, nPos);

                    subkey.DeleteValue(strValue); 

                    lbAddressList.Items.RemoveAt(i);

                }

            }

            key.Close();

        }



        private void btReverseSelClear_Click(object sender, EventArgs e)

        {

            RegistryKey key = Registry.CurrentUser;

            RegistryKey subkey = key.CreateSubKey(CLEARURLRECORD); 

            for (int i = lbAddressList.Items.Count - 1; i >= 0; i--)

            {

                if (!lbAddressList.GetSelected(i))

                {

                    string strValue = lbAddressList.Items[i].ToString();

                    int nPos = strValue.IndexOf(':');

                    strValue = strValue.Substring(0, nPos);

                    subkey.DeleteValue(strValue); 

                    lbAddressList.Items.RemoveAt(i);

                }

            }

        }



        private void btClearAddressAll_Click(object sender, EventArgs e)

        {

            RegistryKey key = Registry.CurrentUser;

            key.DeleteValue(CLEARURLRECORD);

            lbAddressList.Items.Clear();

            key.Close();

        }



        private void LoadAddressRecord()

        {

            string[] szName;

            //读取注册表中的地址栏信息

            RegistryKey key = Registry.CurrentUser;

            RegistryKey subkey = key.CreateSubKey(CLEARURLRECORD);

            szName = subkey.GetValueNames();

            //加载注册表中的信息到列表中

            int nCount = subkey.ValueCount;

            string listValue = "";

            string szValue;

            for(int i=0; i<nCount; i++)

            {

                szValue = szName.GetValue(i).ToString();

                szValue = subkey.GetValue(szValue).ToString();

                listValue = string.Format("{0}:{1}", szName.GetValue(i), szValue);

                lbAddressList.Items.Add(listValue);

            }

            key.Close();

        }



        private void LoadRunRecord()

        {

            string[] szName;

            //读取注册表中的地址栏信息

            RegistryKey key = Registry.CurrentUser;

            RegistryKey subkey = key.CreateSubKey(CLEARRUNRECORD);

            szName = subkey.GetValueNames();

            //加载注册表中的信息到列表中

            int nCount = subkey.ValueCount;

            string listValue = "";

            string szValue;

            for (int i = 0; i < nCount; i++)

            {

                szValue = szName.GetValue(i).ToString();



                if (szValue.Trim() == "MRUList")

                    continue;

                szValue = subkey.GetValue(szValue).ToString();

                listValue = string.Format("{0}:{1}", szName.GetValue(i), szValue);

                lbRunList.Items.Add(listValue);

            }

            key.Close();

        }





        private void btClearRunSel_Click(object sender, EventArgs e)

        {

            RegistryKey key = Registry.CurrentUser;

            RegistryKey subkey = key.CreateSubKey(CLEARRUNRECORD); 

            for (int i = lbRunList.Items.Count - 1; i >= 0; i--)

            {

                if (lbRunList.GetSelected(i))

                {

                    string strValue = lbRunList.Items[i].ToString();

                    int nPos = strValue.IndexOf(':');

                    strValue = strValue.Substring(0, nPos);

                    subkey.DeleteValue(strValue); 

                    lbRunList.Items.RemoveAt(i);

                }

            }

            key.Close();

         }



        private void btClearRunUnSel_Click(object sender, EventArgs e)

        {

            RegistryKey key = Registry.CurrentUser;

            RegistryKey subkey = key.CreateSubKey(CLEARRUNRECORD); 

            for (int i = lbRunList.Items.Count - 1; i >= 0; i--)

            {

                if (!lbRunList.GetSelected(i))

                {

                    string strValue = lbRunList.Items[i].ToString();

                    int nPos = strValue.IndexOf(':');

                    strValue = strValue.Substring(0, nPos);

                    subkey.DeleteValue(strValue); 

                    lbRunList.Items.RemoveAt(i);

                }

            }



        }



        private void btClearRunAll_Click(object sender, EventArgs e)

        {

            RegistryKey key = Registry.CurrentUser;

            key.DeleteValue(CLEARURLRECORD);

            lbRunList.Items.Clear();

            key.Close();

        }

    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值