C#操作注册表实现添加/删除可信站点

本文介绍了如何使用C#来操作注册表,以便在Internet Explorer的信任站点区域添加或删除网址。代码示例展示了针对普通URL和IP地址在`HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap`下的`Domains`和`Ranges`节点的操作。通过判断URL类型并执行相应操作,实现了对信任站点的管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       最近使用C# WebBrowser开发了一个客户端用来做图形展示,由于项目中引用了中央气象台天气信息的网页,出现了脚本加载不了的问题,费了九牛二虎之力才找出解决方法:添加信任站点。参考网上资料写了一个工具类,现把代码贴出来以供参考。

      在IE 工具栏->Internet选项->安全->可信站点->站点 里做添加/删除操作实际上是在操作注册表HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap路径下Domains和Ranges两个节点,如果是普通url,如:http://flash.weather.com.cn,生成的节点如下:

如果是普通IP地址,如:http://10.120.1.1,生成的节点如下:

  针对这两种信任站点的不同操作方式需要分别进行处理,代码如下:

using Microsoft.Win32;

    /// <summary>
    /// 添加/删除 信任站点
    /// </summary>
    public class OperateTrustSite {

        //在注册表添加信任站点
        public static void addTrustSite(string url)
        {
            RegistryKey currentUser = Registry.CurrentUser;//HKEY_CURRENT_USER

            string[] parts = url.Split(new char[] { '/' });//将URL拆分,提取协议和url地址
            string protocol = parts[0].Substring(0, parts[0].Length - 1);//采用的协议:http/https

            ///////////判断是普通URL还是IP,普通URL在Domains节点下操作,IP在Ranges节点下操作////////////////
            if (isIP(parts[2]))
            {
                string domainsKeyLocation = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges";
                RegistryKey ranges = currentUser.OpenSubKey(domainsKeyLocation, true);

                bool has = false;//标识IP是否已经添加
                List<string> numbers = new List<string>();//用来存放Range编号
                //循环所有的range节点,如果要添加的IP已经存在则不操作,否则添加
                foreach (string u in ranges.GetSubKeyNames())
                {
                    numbers.Add(u.Substring("Range".Length));//截取Range1后面的数字1
                    RegistryKey range = ranges.OpenSubKey(u, true);//以可写的权限打开子节点

                    //如果该IP地址已经存在
     &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值