自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
{ "c,P:S] 8hp]+k_y VC修改注册表的方法与函数
o>tT!8rH 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
.).<L`q 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
xU"qB24]= DV"ri 通过修改注册表实现IE换貌
yBiwYk6 我们都知道,在注册表中,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()
Nf'9]I Q1[s{, {
?O?~|nI bm.H0rHR4 if(AddressNum==0){
QD~`UJe> YPEd
XU8} AfxMessageBox("没有可应用的选项!");
U:e9Vq'N m b2%[9)"I. return;
h`j gF Qd?P[xm }
0^z$COCv uy{KV"%"^g CString address;
1hG O*cq! BI]t}7 int sel=m_address1.GetCurSel();
WG{/I/bJ_ mio'm if(LB_ERR ==sel){
9@B+$~:}7 2[hl^f^%, AfxMessageBox("请先选中要应用的选项!");
OpE+e4~IF (?[cDw/{J: return;
'3->G/Pu N~d]}J8}gx }
Hkt'~L* ]0le=Ee^% m_address1.GetText(sel,address);
+s}28U! E>D@#I> //取得所需加入的网址字符串
swA"_A8>u W~FA9Jd'Z CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
](D [T |O?Aj1g[c? HKEY hResult;
&i!] )frtvN7 RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
A9gl|II iz(+(M //得到欲修改键的句柄
'3VrHL@@g 9E+lriyY SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
uzsN#'7= ;4IP7$3G RegCloseKey(hResult);
c[$oR,2b13 \m!."~% //修改注册表相应的值并释放键句柄
6dUP's_ \^cn}db) }
ez>@'yhK +h/$_5 2.给工具条指定用户特定的背景图案
L8J/GVmj ?6bE!36 void CJhfDlg::OnAddBackGround()
@\R)k(F RFdN13sJv {
9[*kpMC u$"5SGI6 if(PictureNum==0){
9maw+ c!~ pLU>vQA AfxMessageBox("没有可应用的选项!");
Ub$$wOsf d<Di;5 return;
(LjY<dQO i@RjG }
*Pl[a1=o /iK )tl|X CString picture;
/dqKFxB1 #E1*1E int sel=m_PicList.GetCurSel();
K^S#?T|[9 $
]HI YYs if(LB_ERR ==sel){
BSz\9 eT |z~?"F6 Y< AfxMessageBox("请先选中要应用的选项!");
!ZVMx*1Cf ,y.0Cb0 return;
t^'1Ebg xR.Ql> }
`y\:3bQ4
e:l 6; m_PicList.GetText(sel,picture);
wKYfqNCH
_#_Ab8# //取得所需加入背景图案文件路径
2'_sGAH qfu;X-$4 CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
{^qc`oF !qR(Rn HKEY hResult;
5v3B8 @CsA $Z j. RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
S("bN{7nE &jJgAZ! //得到欲修改键的句柄
Oe27 3Y^e CUG6|qu SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
J4gIkZD 4MIVlg9 SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
^j`
vk I/tzo(r RegCloseKey(hResult);
hYV{N7$U| pv T!6+
//修改注册表相应的值并释放键句柄
GA|q[<U >#ou8}0 RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
~`BOzP +bXZE //得到欲修改键的句柄
D >mLSh ?Cws25G SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
_EY:vv ]X5*e' SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
]-6 G'i? gk&?h7P"< RegCloseKey(hResult);
\yxr@z1_b 1w5nBVC*$V //修改注册表相应的值并释放键句柄
My
^pQ]@ pM=vW{"I/ }
;(afz?T XBc+_=)$ OYKV* 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。