自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
G#
.z((Rj u\Tq5PYXt VC修改注册表的方法与函数
D)K/zh) 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
'\[GquK;P 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
`G@]\)-! WVir[Kv% 通过修改注册表实现IE换貌
4$@5PS#, 我们都知道,在注册表中,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()
[?.k 8;k }3V Q*'X>i {
_@ev(B 3tA6r if(AddressNum==0){
8%U+y0j6b 0\k2F,:%4 AfxMessageBox("没有可应用的选项!");
"!+q0l1]@ 7??+8T#n* return;
,_F1g<^@u -'*B%yy }
6Y`eYp5A 6L}$R`s5H CString address;
;Ze}i/l VNp[J'a>VZ int sel=m_address1.GetCurSel();
,1a6u3f, K\,)9:`t if(LB_ERR ==sel){
dE%rQE7' ?WKFDL'_0j AfxMessageBox("请先选中要应用的选项!");
+YI/(ko= zw_Xh~4"b return;
[K9l>O LeF Z%y)F }
Z[[qW
f +A>>Ak|s m_address1.GetText(sel,address);
jL<:N
8 "fU=W|lY //取得所需加入的网址字符串
B#OnooJI &l/2[>D%4 CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
&&nvv &a hV)D,oN3 HKEY hResult;
}N&}6U SRRqIQz RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
9l]+rs+ HcavA{H //得到欲修改键的句柄
}i ^]uW*h B8:G1r5G/ SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
sC(IeGbX $^?Mip RegCloseKey(hResult);
.hzzoLI2 zn@<>o8hU //修改注册表相应的值并释放键句柄
; $i{>mDT zogw1g&C }
LPc)-t|p" @!"w.@Y 2.给工具条指定用户特定的背景图案
{P&{+`sov iqreIMWz void CJhfDlg::OnAddBackGround()
TwH%P2)x
=8?y$WE {
?\"GT] 5D V|gW%Z,j if(PictureNum==0){
>B!E 6ah @n"7L2wY AfxMessageBox("没有可应用的选项!");
m9 o{y6_j* %JF^@\E!| return;
p.A_,iE `*g(_EZsS }
'y[74?1 ;|}N\[fk%] CString picture;
^~9fQJNs 2Tec#eYe int sel=m_PicList.GetCurSel();
Q,9"/@:c, -K eoq if(LB_ERR ==sel){
}E0~' :tBIo7 AfxMessageBox("请先选中要应用的选项!");
t~]n"zgovz rofj&{w return;
`u$
Rd VHyH't_&s }
X'Q?Mh e=Ko4Ao2y m_PicList.GetText(sel,picture);
<`rmQ`(}s %A64AJZ //取得所需加入背景图案文件路径
P{fT5K| ~"|MwR!0 CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
= >CADTU M(8dKj1+ HKEY hResult;
{ RH&mu [U]^:sV) RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
QxS]6hA xY4g2Q
J //得到欲修改键的句柄
@+Yql gR1vUad7 SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
,.DTJ7H+ E:vgG|?? SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
H1>~,zc>E [$M=+YRHMW RegCloseKey(hResult);
K)b@,/ 5 !ij
R //修改注册表相应的值并释放键句柄
0Xo>f"2<f mh#NmW>n RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
6Cw+ /5:2g#S4 //得到欲修改键的句柄
PL} Wu= _E'F SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
6<1
2j7 7>.d*?eao\ SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
3E9 )~$ 2qd5iOhX+ RegCloseKey(hResult);
[x{z}rYH ]bxBo //修改注册表相应的值并释放键句柄
ncTPFv
H5 wN
NXUW }
Znr6,[U+q wnUuoX( Ig&H0S 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。