<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上看不出效果。