环境变量管理工具

来源:互联网 发布:淘宝店铺产品怎么分类 编辑:程序博客网 时间:2024/04/29 02:41

   职业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