注册表的相关操作

using  System;
using  System.Collections.Generic;
using  System.ComponentModel;
using  System.Drawing;
using  System.Data;
using  System.Text;
using  System.Windows.Forms;
using  System.Data.SqlClient;
using  Microsoft.Win32;

namespace  WindowsForm
... {
    
public partial class doits : UserControl
    
...{
        
private RegistryKey hkml;
        
private DataSet ds = new DataSet();
        
private string MenuName;
        
public string StringName
        
...{
            
set
            
...{
                MenuName 
= value;
            }

        }

        
public doits()
        
...{
            InitializeComponent();
        }

        
private void doits_Load(object sender, EventArgs e)
        
...{
            
if (MenuName != null)
            
...{
                
//this.button1.Text = MenuName;
                create();
            }

            
else
            
...{
               
// this.button1.Text = "没有任何操作";
                label1.Text = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
                toolStripStatusLabel1.Text 
= "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
                
this.label2.Text = "程序制作说明:";
                
this.richTextBox1.Text = "程序说明文件,自己写";
                
this.button1.Visible = false;
                
this.button2.Visible = false;
            }

        }

        
private void create()
        
...{
            SqlDataAdapter ad 
= new SqlDataAdapter("select * from operator where MenuID=" + MenuName + ";select * from Menu where ID=" + MenuName, "server=.;uid=sa;pwd=;database=Data");
            ad.Fill(ds);
            
if (ds.Tables[0].Rows.Count > 0)
            
...{
                
this.label1.Text = "数据库优化名称为:" + ds.Tables[1].Rows[0]["MenuText"].ToString();
                toolStripStatusLabel1.Text 
= ds.Tables[1].Rows[0]["MenuText"].ToString();
                
this.richTextBox1.Text = ds.Tables[0].Rows[0]["Description"].ToString();
            }

            
else
            
...{
                
this.button1.Enabled = false;
                
this.button2.Enabled = false;
                label1.Text 
= "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
                toolStripStatusLabel1.Text 
= "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
                
this.label2.Text = "程序制作说明:";
                
this.richTextBox1.Text = "程序说明文件,自己写";
                MessageBox.Show(
"我日,没有要修改的数据","",MessageBoxButtons.OK,MessageBoxIcon.Warning);
            }

        }


        
private void button1_Click(object sender, EventArgs e)
        
...{
            
//打开数据库,更加传进来的参数,对数据库进行一步步优化操作,及注册表的增删改等等操作。
            foreach (DataRow dr in ds.Tables[0].Rows)
            
...{
                
if (dr["operator"].ToString() == "添加")
                
...{
                    
string path = dr["Address"].ToString();
                    
string name = dr["opName"].ToString();
                    
object tovalue = dr["opNewValue"].ToString();
                    RegistryValueKind Kind;
                    
if (dr["opType"].ToString() == "Binary")
                    
...{
                        Kind 
= RegistryValueKind.Binary;
                    }

                    
else if (dr["opType"].ToString() == "DWord")
                    
...{
                        Kind 
= RegistryValueKind.DWord;
                    }

                    
else if (dr["opType"].ToString() == "ExpandString")
                    
...{
                        Kind 
= RegistryValueKind.ExpandString;
                    }

                    
else if (dr["opType"].ToString() == "MultiString")
                    
...{
                        Kind 
= RegistryValueKind.MultiString;
                    }

                    
else if (dr["opType"].ToString() == "QWord")
                    
...{
                        Kind
=RegistryValueKind.QWord;
                    }

                    
else if (dr["opType"].ToString() == "String")
                    
...{
                        Kind
=RegistryValueKind.String;
                    }

                    
else
                    
...{
                        Kind
=RegistryValueKind.Unknown;
                    }

                    WTRegedit(path,name,tovalue,Kind);
                }

                
else if (dr["operator"].ToString() == "修改")
                
...{
                    
string path = dr["Address"].ToString();
                    
string name = dr["opName"].ToString();
                    
object tovalue = dr["opNewValue"].ToString();
                    ChangeRegedit(path, name, tovalue);
                }

                
else if (dr["operator"].ToString() == "删除")
                
...{
                    
string path = dr["Address"].ToString();
                    
string name = dr["opName"].ToString();
                    dRegedit(path, name);
                }

                
else
                
...{
                    MessageBox.Show(
"他妈的,我不能处理了!你数据库怎么录入的。");
                }

            }

        }


        
private void button2_Click(object sender, EventArgs e)
        
...{
            
foreach (DataRow dr in ds.Tables[0].Rows)
            
...{
                
if (dr["operator"].ToString() == "添加")
                
...{
                    
string path = dr["Address"].ToString();
                    
string name = dr["opName"].ToString();
                    dRegedit(path, name);
                }

                
else if (dr["operator"].ToString() == "修改")
                
...{
                    
string path = dr["Address"].ToString();
                    
string name = dr["opName"].ToString();
                    
object tovalue = dr["opOleValue"].ToString();
                    ChangeRegedit(path, name, tovalue);
                }

                
else if (dr["operator"].ToString() == "删除")
                
...{
                    
string path = dr["Address"].ToString();
                    
string name = dr["opName"].ToString();
                    
object tovalue = dr["opOleValue"].ToString();
                    RegistryValueKind Kind;
                    
if (dr["opType"].ToString() == "Binary")
                    
...{
                        Kind 
= RegistryValueKind.Binary;
                    }

                    
else if (dr["opType"].ToString() == "DWord")
                    
...{
                        Kind 
= RegistryValueKind.DWord;
                    }

                    
else if (dr["opType"].ToString() == "ExpandString")
                    
...{
                        Kind 
= RegistryValueKind.ExpandString;
                    }

                    
else if (dr["opType"].ToString() == "MultiString")
                    
...{
                        Kind 
= RegistryValueKind.MultiString;
                    }

                    
else if (dr["opType"].ToString() == "QWord")
                    
...{
                        Kind 
= RegistryValueKind.QWord;
                    }

                    
else if (dr["opType"].ToString() == "String")
                    
...{
                        Kind 
= RegistryValueKind.String;
                    }

                    
else
                    
...{
                        Kind 
= RegistryValueKind.Unknown;
                    }

                    WTRegedit(path, name, tovalue, Kind);
                }

                
else
                
...{
                    MessageBox.Show(
"他妈的,我不能处理了!你数据库怎么录入的。");
                }

            }

        }




        
private RegistryKey setKey(string path)
        
...{
            
string[] a = path.Split('\');
            
if (path.Substring(0, a[0].Length) == "HKEY_CLASSES_ROOT")
            
...{
                hkml 
= Registry.ClassesRoot;
            }

            
else if (path.Substring(0, a[0].Length) == "HKEY_CURRENT_USER")
            
...{
                hkml 
= Registry.CurrentUser;
            }

            
else if (path.Substring(0, a[0].Length) == "HKEY_LOCAL_MACHINE")
            
...{
                hkml 
= Registry.LocalMachine;
            }

            
else if (path.Substring(0, a[0].Length) == "HKEY_USERS")
            
...{
                hkml 
= Registry.Users;
            }

            
else if (path.Substring(0, a[0].Length) == "HKEY_CURRENT_CONFIG")
            
...{
                hkml 
= Registry.CurrentConfig;
            }

            
else
            
...{
                hkml 
= null;
            }

            
return hkml;
        }


        
public string GetRegeditData(string path, string name)
        
...{
            
string[] aimnames;
            
string keyData = string.Empty;
            hkml 
= setKey(path).OpenSubKey(path.Substring(hkml.Name.Length + 1), true);
            aimnames 
= hkml.GetValueNames();
            
foreach (string aimKey in aimnames)
            
...{
                
if (aimKey == name)
                
...{
                    keyData 
= hkml.GetValue(name).ToString();
                }

            }

            
return keyData;
        }


        
//向注册表中写人数据
        public void WTRegedit(string path, string name, object tovalue, RegistryValueKind Kind)
        
...{
            hkml 
= setKey(path).CreateSubKey(path.Substring(hkml.Name.Length + 1));
            hkml.SetValue(name, tovalue, Kind);
        }

        
public void ChangeRegedit(string path, string name, object tovalue)
        
...{
            hkml 
= setKey(path).CreateSubKey(path.Substring(hkml.Name.Length + 1));
            hkml.SetValue(name, tovalue);
        }


        
public void dRegedit(string path, string name)
        
...{
            
string[] aimnames;
            hkml 
= setKey(path).OpenSubKey(path.Substring(hkml.Name.Length + 1), true);
            aimnames 
= hkml.GetValueNames();
            
foreach (string aimKey in aimnames)
            
...{
                
if (aimKey == name)
                    hkml.DeleteValue(name);
            }

        }


        
public void DeleteRegist(string path, string name)
        
...{
            
string[] aimnames;
            hkml 
= setKey(path).OpenSubKey(path.Substring(hkml.Name.Length + 1), true);
            aimnames 
= hkml.GetSubKeyNames();
            
foreach (string aimKey in aimnames)
            
...{
                
if (aimKey == name)
                    hkml.DeleteSubKey(name);
            }

        }

    }

}

转载于:https://www.cnblogs.com/wkjs/archive/2007/06/29/2008533.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值