长亭百川云 - 文章详情

环境变量管理工具

能哥的专栏

64

2024-07-19

   职业coder是经常要修改系统的环境变量的,而我们的机器往往装的程序比较多,环境变量自然也多的不便于修改,比如下图中我机器的path变量,windows自带的实在太难用,于是开发了这么一个小软件,代码量也比较少,使用几年比较稳定,代码拿出来分享一下,省的同猿们重复造轮子,源码及程序下载见博文底部。

关键源码如下:

 Environment.cs

using Microsoft.Win32;
using System.Collections.Generic;
using System.Security.AccessControl;
using System.Text;
using System;
namespace Environment
{
    public class RegistItem
    {
        public Type  T;
        public string SubKey;
        public string Name;
        public string Value;
    }
    public abstract class IEnvironmentHelp
    {
        public string SubKey;
        public RegistryKey pregkey = null;
        public RegistrySecurity security = null;
        public IEnvironmentHelp()
        {
        }
        ~IEnvironmentHelp()
        {
            pregkey.Close();
        }

        public virtual List<RegistItem> GetItemList()
        {
            List<RegistItem> ItemList=new List<RegistItem>();
            string[] Names = pregkey.GetValueNames();
            int count =Names.Length;

            for (int i = 0; i < count; i++)
            {
                RegistItem item=new RegistItem();
                item.T = this.GetType();
                item.SubKey = this.SubKey;
                item.Name=Names[i];
                item.Value =pregkey.GetValue(item.Name.ToString()).ToString();
                ItemList.Add(item);
            }
            return ItemList;
        }
        public virtual void Get(RegistItem item)
        {
            pregkey.GetValue(item.Name);
        }
        public virtual void Update(RegistItem item)
        {
            UnSplit(item);
            pregkey.SetValue(item.Name, item.Value);
            pregkey.Flush();
        }
        public virtual void Add(RegistItem item)
        {
            item.T = this.GetType();
            item.SubKey = this.SubKey;
            pregkey.SetValue(item.Name, item.Value);
        }
        public virtual void Delete(RegistItem item)
        {
            pregkey.DeleteValue(item.Name);
        }
        public static RegistItem UnSplit(RegistItem item)
        {

            //item.Value = item.Value.Replace(";\r\n", ";");
            
            return item;
        }
        public static RegistItem Split(RegistItem item)
        {
            //if (item.Value.IndexOf("\r\n")==-1)
            //{
            //    return item;
            //}
            //string[] value;
            //value = item.Value.Split(';');
            //int count = value.Length;
            //StringBuilder sbResult = new StringBuilder();
            //for (int i = 0; i < count; i++)
            //{
            //    sbResult.Append(value[i]);
            //    if (i != 0)
            //    {
            //        sbResult.Append(";\r\n");
            //    }
            //}
            //item.Value = sbResult.ToString();
            
            return item;
        }
    }
    public class CurrentUser_SubKey : IEnvironmentHelp
    {
        public CurrentUser_SubKey()
        {
            SubKey = "Environment";
            pregkey = Registry.CurrentUser.OpenSubKey(SubKey, true);
        }
        
    }
    public class System_SubKey : IEnvironmentHelp
    {
        public System_SubKey()
        {
            SubKey = @"SYSTEM\ControlSet001\Control\Session Manager\Environment";
            pregkey = Registry.LocalMachine.OpenSubKey(SubKey, true);
        }
       
    }
}

更新说明:

2014/4/9

1.增加了变量名修改功能,点击后lable变为编辑模式。

2.考虑软件的美观问题,为软件设置了一个ico图标。

3.加入了驱动调试符号路径的快速设置功能。

下载地址http://download.csdn.net/detail/cwangchao/7164615

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2