您的位置:首页 > 编程语言 > C#

C#操作注册表建立文件关联

2008-12-19 11:46 429 查看
提供两个方法 建立个是删除文件关联

使用方式

 

ViewScreen.ViewControl.ViewDraw.SaveReg(@"C:/IVRDesigner.exe", ".vrd");

 

在程序中获得参数关联参数  Environment.CommandLine

 

方法  需要引用using Microsoft.Win32;

 

     /// <summary>

        /// 设置文件关联

        /// </summary>

        /// <param name="p_Filename">程序的名称</param>

        /// <param name="p_FileTypeName">扩展名 .VRD </param>

        public static void SaveReg(string p_Filename,string p_FileTypeName)

        {

            RegistryKey _RegKey = Registry.ClassesRoot.OpenSubKey("", true);              //打开注册表

            RegistryKey _VRPkey = _RegKey.OpenSubKey(p_FileTypeName);

            if (_VRPkey != null) _RegKey.DeleteSubKey(p_FileTypeName, true);

            _RegKey.CreateSubKey(p_FileTypeName);

            _VRPkey = _RegKey.OpenSubKey(p_FileTypeName, true);

            _VRPkey.SetValue("", "Exec");

            _VRPkey = _RegKey.OpenSubKey("Exec", true);

            if (_VRPkey != null) _RegKey.DeleteSubKeyTree("Exec");         //如果等于空 就删除注册表DSKJIVR

            _RegKey.CreateSubKey("Exec");

            _VRPkey = _RegKey.OpenSubKey("Exec", true);

            _VRPkey.CreateSubKey("shell");

            _VRPkey = _VRPkey.OpenSubKey("shell", true);                      //写入必须路径

            _VRPkey.CreateSubKey("open");

            _VRPkey = _VRPkey.OpenSubKey("open", true);

            _VRPkey.CreateSubKey("command");

            _VRPkey = _VRPkey.OpenSubKey("command", true);

            string _PathString = "/"" + p_Filename + "/" /"%1/"";

            _VRPkey.SetValue("", _PathString);                                    //写入数据

        }

        /// <summary>

        /// 删除文件关联

        /// </summary>

        /// <param name="p_FileTypeName">扩展名 .VRD </param>

        public static void DelReg(string p_FileTypeName)

        {

            RegistryKey _Regkey = Registry.ClassesRoot.OpenSubKey("", true);

            RegistryKey _VRPkey = _Regkey.OpenSubKey(p_FileTypeName);

            if (_VRPkey != null) _Regkey.DeleteSubKey(p_FileTypeName, true);

            if (_VRPkey != null) _Regkey.DeleteSubKeyTree("Exec");

        }

 

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息