环境变量管理工具

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


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值