天天看點

C#操作系統資料庫C#操作系統資料庫的實作方法(圖)

<a href="http://www.anqn.com/">安全中國 www.anqn.com</a>

更新時間:2009-07-13 00:02:00

責任編輯:ShellExp

熱 點:

這幾天因為要做一個像IE工具欄上的QQ、FlashGet一樣的一個應用程式,是以簡單研究了一下C#操作系統資料庫,現總結如下:

一.接着來熟悉一下C#中修改系統資料庫的方法與函數。

在VC#中提供了Registry類、RegistryKey類來實作對系統資料庫的操作。

其中Registry類封裝了系統資料庫的七個基本主健:

  Registry.ClassesRoot 對應于HKEY_CLASSES_ROOT主鍵

  Registry.CurrentUser 對應于HKEY_CURRENT_USER主鍵

  Registry.LocalMachine 對應于 HKEY_LOCAL_MACHINE主鍵

  Registry.User 對應于 HKEY_USER主鍵

  Registry.CurrentConfig 對應于HEKY_CURRENT_CONFIG主鍵

  Registry.DynDa 對應于HKEY_DYN_DATA主鍵

  Registry.PerformanceData 對應于HKEY_PERFORMANCE_DATA主鍵

RegistryKey類封裝了對系統資料庫的基本操作,包括讀取,寫入,删除。

其中讀取的主要函數有: 

OpenSubKey ( string name )方法主要是打開指定的子鍵。

GetSubKeyNames ( )方法是獲得主鍵下面的所有子鍵的名稱,它的傳回值是一個字元串數組。

GetValueNames ( )方法是獲得目前子鍵中的所有的鍵名稱,它的傳回值也是一個字元串數組。

GetValue ( string name )方法是指定鍵的鍵值。

寫入的函數:

    CreateSubKey(string name)方法是增加一個子鍵

    SetValue(string name,string value)方法是設定一個鍵的鍵值

删除的函數:

  DeleteSubKey ( )方法:删除一個指定的子鍵。

  DeleteSubKeyTree ( )方法:此方法是徹底删除指定的子鍵目錄,即:删除該子鍵以及該子鍵以下的全部子鍵。

在下面的例子裡,要注意:

   建項函數:CreateSubKey()

       建子鍵函數:SetValue();

class Program

    {

        static string Generateguid()//建立GUID值的函數

        {

            return System.Guid.NewGuid().ToString();

        }

        static void Main(string[] args)

            RegistryKey pregkey;

            string preName;

            //pregkey = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop\\WindowMetrics",true);

            pregkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Internet Explorer\\Extensions",true);//以隻讀方式檢索子項

            if (pregkey == null)

            {

                Console.WriteLine("該鍵值不存在");

              

            }

            else

                preName = Generateguid();

                Console.WriteLine(preName);

                Console.WriteLine("找到該鍵值");

                preName = "{" + preName + "}";

                //pregkey.SetValue("MinAnimate","1");

                pregkey.CreateSubKey(preName);//建立子項

                pregkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Internet Explorer\\Extensions\\"+preName, true);

                //pregkey.SetValue("bbbbb", "0");//建立子鍵,如果有此子鍵,則設值。

                pregkey.SetValue("ButtonText", "添加");//滑鼠放到bar上時顯示的文字

                pregkey.SetValue("CLSID", "{1FBA04EE-3024-11d2-8F1F-0000F87ABD16}");//CLSID固定

                pregkey.SetValue("Default Visible", "yes");//預設可看見

                pregkey.SetValue("Exec", "D:/IEbar/IEpinout.exe");//關聯的exe檔案

                pregkey.SetValue("HotIcon", "D:/IEbar/Icon2.ico");//滑鼠放到bar上時顯示的圖樣

                pregkey.SetValue("Icon", "D:/IEbar/Icon1.ico");//滑鼠未放在bar上時顯示的圖樣

                //pregkey.SetValue("MenuStatusBar", "楊");

                //pregkey.SetValue("MenuText", "我是楊!");

            pregkey.Close();

    }

此例子在vs2005,xp系統下調試通過。

生成exe檔案,直接運作,然後打開ie檢視工具欄上的效果。

注意:必需要有"D:/IEbar/Icon2.ico"和"D:/IEbar/Icon1.ico"這兩個檔案,否則在ie上看不出效果。