用Visual C#打造個(gè)性化的IE瀏覽器
2024-07-21 02:18:09
供稿:網(wǎng)友
,歡迎訪問(wèn)網(wǎng)頁(yè)設(shè)計(jì)愛(ài)好者web開(kāi)發(fā)。ie是現(xiàn)在windows平臺(tái)下用的最多的瀏覽器,但微軟提供的ie是那么樸實(shí),以至于毫無(wú)特色,那么如何用程序來(lái)修改ie,打造有自己的特色的ie呢?我經(jīng)過(guò)思索,通過(guò)注冊(cè)表找到了修改ie的方法,下面我向大家介紹一下這種方法。
首先我們來(lái)熟悉一下c#中修改注冊(cè)表的方法與函數(shù)。在vc#中提供了registry類(lèi)、registrykey類(lèi)來(lái)實(shí)現(xiàn)對(duì)注冊(cè)表的操作。其中registry類(lèi)封裝了注冊(cè)表的七個(gè)基本主健:
registry.classesroot 對(duì)應(yīng)于hkey_classes_root主鍵
registry.currentuser 對(duì)應(yīng)于hkey_current_user主鍵
registry.localmachine 對(duì)應(yīng)于 hkey_local_machine主鍵
registry.user 對(duì)應(yīng)于 hkey_user主鍵
registry.currentconfig 對(duì)應(yīng)于heky_current_config主鍵
registry.dynda 對(duì)應(yīng)于hkey_dyn_data主鍵
registry.performancedata 對(duì)應(yīng)于hkey_performance_data主鍵
registrykey類(lèi)封裝了對(duì)注冊(cè)表的基本操作,包括讀取,寫(xiě)入,刪除。其中讀取的主要函數(shù)有:
opensubkey ( string name )方法主要是打開(kāi)指定的子鍵。
getsubkeynames ( )方法是獲得主鍵下面的所有子鍵的名稱(chēng),它的返回值是一個(gè)字符串?dāng)?shù)組。
getvaluenames ( )方法是獲得當(dāng)前子鍵中的所有的鍵名稱(chēng),它的返回值也是一個(gè)字符串?dāng)?shù)組。
getvalue ( string name )方法是指定鍵的鍵值。
寫(xiě)入的函數(shù)有:
createsubkey(string name)方法是增加一個(gè)子鍵
setvalue(string name,string value)方法是設(shè)置一個(gè)鍵的鍵值
刪除的函數(shù):
deletesubkey ( )方法:刪除一個(gè)指定的子鍵。
deletesubkeytree ( )方法:
此方法是徹底刪除指定的子鍵目錄,即:刪除該子鍵以及該子鍵以下的全部子鍵。
通過(guò)注冊(cè)表可以修改ie,在這里我簡(jiǎn)單的介紹幾個(gè)常用的來(lái)實(shí)現(xiàn)對(duì)ie的修改。
如果我們希望在打開(kāi)或者關(guān)閉ie窗口時(shí),被打開(kāi)的窗口有動(dòng)感效果,那么可以打開(kāi)hkey_ current_user / control panel/ desktop/ windowmetrics鍵,并在右邊的窗口中新建串值"minanimat"與"maxanimat"并設(shè)值為"0",為"1",這樣在ie窗口最大最小化切換時(shí)有遞變的效果。
如果我們更改為ie的工具欄添加背景那么展開(kāi)hkey_current_user\ software\microsoft\internet explorer\toolbar鍵值,explorer主鍵下新建一個(gè)名為"backbitmap"的字符串值,并將其值修改為事先準(zhǔn)備的bmp圖片的完整路徑及文件名;這樣我們就完成了為ie的工具欄添加背景圖片的目的。
用c#編程來(lái)實(shí)現(xiàn)的方法如下:
1.ie窗口的動(dòng)感效果
//-------------------------------------
// changeie.cs ? 2004 by yudehui
//-------------------------------------
using system;
using microsoft.win32; //對(duì)注冊(cè)表操作一定要引用這個(gè)命名空間
namespace changeie
{
class changeie
{
[stathread]
static void main(string[] args)
{
registrykey pregkey ;
pregkey = registry.currentuser.opensubkey("control panel//desktop//windowmetrics",true);
if (pregkey==null)
{
console.writeline("鍵值不存在");
}
else
{
pregkey.setvalue("minanimate","1");
pregkey.setvalue("maxanimate","1");
console.writeline("修改成功");
}
pregkey. close;
}
}
}
2.改變ie工具欄的背景
//-------------------------------------
// changeie.cs ? 2004 by yudehui
//-------------------------------------
using system;
using microsoft.win32; //對(duì)注冊(cè)表操作一定要引用這個(gè)命名空間
namespace changeiebackcolor
{
class changeiebackcolor
{
[stathread]
static void main(string[] args)
{
registrykey pregkey ;
pregkey = registry.currentuser.opensubkey("software//microsoft//internet" +
"explorer//toolbar//explorer ",true);
if (pregkey==null)
{
console.writeline("鍵值不存在");
}
else
{
pregkey.setvalue("backbitmap","c://windows//greenstone.bmp");
console.writeline("修改成功");
}
pregkey.close;
}
}
}
以上兩個(gè)簡(jiǎn)單的例子只是對(duì)ie進(jìn)行了簡(jiǎn)單的設(shè)定,相信大家對(duì)c#下對(duì)注冊(cè)表的操作已經(jīng)有了一定的了解。有興趣的讀者可以自己對(duì)ie進(jìn)行更個(gè)性化的修改,以上代碼在windows2003+vs.net2003下調(diào)試通過(guò)。
注:在對(duì)注冊(cè)表進(jìn)行操作有一定的危險(xiǎn)性,操作時(shí)要先進(jìn)行備份,以防止誤操作,而導(dǎo)致系統(tǒng)崩潰。