自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
}cW#045es q"nGy#UWR VC修改注册表的方法与函数
&t6Tcy 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
A.U'Q| 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
PEzia}m ]o*$h$? s 通过修改注册表实现IE换貌
bl.EIyG> 我们都知道,在注册表中,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()
P)1EA; n7DLJ`ho{ {
2.qpt'p[ C #aFc01B if(AddressNum==0){
f3n~{a,[ /qXzOd AfxMessageBox("没有可应用的选项!");
__(V C: yVYkuO return;
Ja [#[BJ? ]!aUT& }
!*bdG(pK FmI;lVF0j CString address;
F*\4l;NJ
V16%Ne int sel=m_address1.GetCurSel();
1eiw3WU; [q"NU&SX if(LB_ERR ==sel){
L*^
V5^- w4A#>;Qu* AfxMessageBox("请先选中要应用的选项!");
mn`5pha vHc#m@4o return;
]}~4J.Yn y@ . b
4 }
A]xCF{*)& zq=&4afOE m_address1.GetText(sel,address);
2Fq=jOA)z$ -(
Kh.h //取得所需加入的网址字符串
^'YHJEK }5hZo%w[n CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
hXTYTbTX eI?HwP{m HKEY hResult;
%ET
#
z! eA&t% RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
f}blB?e -#OwJ*-U //得到欲修改键的句柄
kwc*is "$P'Wv SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
P
eHW[\) ?sE@]]z RegCloseKey(hResult);
``6{T1fQS K4Y'B
o4 //修改注册表相应的值并释放键句柄
SdSgn |S +K&?)?/= }
?-S8yqe wBE7Bv45 2.给工具条指定用户特定的背景图案
4uPH Nuo^+z
E void CJhfDlg::OnAddBackGround()
XJ O[[G` Fr2kbQTg; {
V07VwVD ovbEmb if(PictureNum==0){
@Jm.HST#S8 !. p AfxMessageBox("没有可应用的选项!");
\Vz,wy%- W oWBs)E return;
blUY.{NN3 OgQntj:%lN }
:q(D(mK }'v{dK CString picture;
WqR7uiCi O%52V|m}{ int sel=m_PicList.GetCurSel();
"~_$T@^k> *!i,?vn if(LB_ERR ==sel){
<o~t$TH MCM/=M'y AfxMessageBox("请先选中要应用的选项!");
[#IBYJ.6 @`5QG2 return;
s:3aRQ% q ?(A!1(u }
' 4,y xm^N8 m_PicList.GetText(sel,picture);
zf`5>h| ^)Smv\Md //取得所需加入背景图案文件路径
v: giZxR J_|7$
l/ CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
)4@M`8 JR])xPI` HKEY hResult;
?n2C ES^NBI j5P RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
7qpzk7X?pR d8rBu jT //得到欲修改键的句柄
$|rCrak; Ob7zu"zr SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
S> .q5 ?0 HR(N(z! SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
%B[YtWqm`/ BO[+E'2 RegCloseKey(hResult);
?){0-A4 2@rp<&s //修改注册表相应的值并释放键句柄
Rk}\)r\ >9 q]>fJ RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
NAJ '><2 G}182"#4 //得到欲修改键的句柄
m"5{D*| )>ug{M%g SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
hT.4t,wa8 Jw2B&)k/ SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
Ga]47pQ"F Cq-hPa}2 RegCloseKey(hResult);
(}9cD^F0n ,?C|.5 //修改注册表相应的值并释放键句柄
NKRaQr J>><o:~@ }
s4x'f$r 1R5Yn( =n> iQS 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。