自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
QcG4~DEX4 ~7T]l1]W% VC修改注册表的方法与函数
*?%DdVrO@ 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
jI!}}K)d 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
jD9^DzFx g|8G!7O 通过修改注册表实现IE换貌
uqPagt< 我们都知道,在注册表中,IE的主要设置内容在键HKEY_CURRENT_USER 下面的Software\\Microsoft\\Internet Explorer中,例如,我们想对IE的启动初始访问页进行定义修改,便可以把Software\\Microsoft \\Internet Explorer\\Main下的“Start Page”设置为需要的网址,如“
www.ccidnet.com”。另外通过修改键HKEY_CURRENT_USER和键HKEY_LOCAL_MACHINE 下面的Software \\Microsoft\\Internet Explorer\\Toolbar里“BackBitmap”和“BackBitmapIE5”的值,即可加入用户特定的背景图案。我们通过以下代码可实现对IE的改造: void CJhfDlg::OnAddAddress()
w$4fS Au08k}h<G {
Qp~O!9ph hSE\RX 9 if(AddressNum==0){
8W
Mhe=[ C]K|;VQ AfxMessageBox("没有可应用的选项!");
}-9 }2;~':Mklz return;
k\X1`D}R -bT1Qh
X }
JSCe86a7<E 0L1NZY^! CString address;
Kf#9-.}? d-w#\ ^ int sel=m_address1.GetCurSel();
1*<m,.$ F1%-IBe if(LB_ERR ==sel){
fvgjqiT C;#vW FE AfxMessageBox("请先选中要应用的选项!");
V(n7hpS c.y8x return;
WrBiAh, ;@xSJqT }
aj;OG^(!2_ [A99e` m_address1.GetText(sel,address);
.jW+\mIX H7!j5^ //取得所需加入的网址字符串
FYh+G-Y# Kt5;GUV CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
/f2HZfj ~_R8; b HKEY hResult;
^y"5pfSR WBdC}S
}3t RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
#wn`choT' V*HkFT //得到欲修改键的句柄
i|A0G%m]$ qBL>C\V + SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
R]hilb'a {1a%CsCM RegCloseKey(hResult);
d2f
dNd(57 //修改注册表相应的值并释放键句柄
;G!JKg NJ\ID=3l }
/~RY{ c@#L !Wn^B| 2.给工具条指定用户特定的背景图案
AP*Z0OFE zi M~V' void CJhfDlg::OnAddBackGround()
fHK`u' &|cg`m {
?86q8E3;& _Ec9g^I10 if(PictureNum==0){
h8#14? >drG,v0qh AfxMessageBox("没有可应用的选项!");
A#/O~-O^
vV5dW return;
?J[m)Uo/K 36ygI0V_ }
};{V]f 0
d~#>.$Uu CString picture;
w"?H4 \C<|yD int sel=m_PicList.GetCurSel();
BllS3I}V $,Q0ay if(LB_ERR ==sel){
AXbDCDA 3.[ fTrzJ AfxMessageBox("请先选中要应用的选项!");
(t$jb|Oa /Z':wu\ return;
<UI^~Azc# 1>5l(zK!9 }
AunX[X9 L;jzDng< m_PicList.GetText(sel,picture);
K9\p=H^T7 %ae|4u#b //取得所需加入背景图案文件路径
OQl7#`G!H% mar6/*`I#+ CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
=v-qao7xCV +hoZW R HKEY hResult;
HP/f`8 LmCr[9/ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
'E_M,Y Wd9y8z; //得到欲修改键的句柄
+MHsdeGU1W Xaz`L SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
a| w.G "W $@WqM$ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
;^fGQ]`4
-L zx3" RegCloseKey(hResult);
Vp"=8p#k cOhx //修改注册表相应的值并释放键句柄
S_ELZO#7 >d/DXv
3 RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
idG}p+(; 45?aV@ //得到欲修改键的句柄
YB;q5[ )uG7 DR SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
H YA< H]zi>;D SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
|"gg2p .N:& {$o: RegCloseKey(hResult);
|+-D@22y Bsr;MVD //修改注册表相应的值并释放键句柄
F'NX |8m2i1XG }
7dg2-4 `<cnb!] F\K&$5J{p 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。