自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
";59,\6
yF^)H{yx VC修改注册表的方法与函数
TJb&f< 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
4_\]zhS 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
vpk~,D07yR 1{wOjq(4 通过修改注册表实现IE换貌
bvo
}b-]E 我们都知道,在注册表中,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()
cp+eh M]e _@:! {
l,Ixz1S3e p*=9Ea: if(AddressNum==0){
23`pog{n yy\d<-X~ AfxMessageBox("没有可应用的选项!");
6EG`0h6 x0L,$Ol return;
u8[jD^ bJ6v5YA% }
GZ"J6/0-| sT"{ e7;F; CString address;
N_E:?Jo {7FD-Q[tS int sel=m_address1.GetCurSel();
~Q1%DV. ;p)fW/< if(LB_ERR ==sel){
[kZe6gYP& }-M%$~` AfxMessageBox("请先选中要应用的选项!");
1Q9eS& 79MB_Is]s return;
%C*h/AW)' Ea3 4x }
U^$l$"~" LpSd/_^b m_address1.GetText(sel,address);
HLDg_ On8 _l.kbfp@ //取得所需加入的网址字符串
`
_]tN wmgKh)`@_{ CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
p:^;A/D 5nG$6Hw HKEY hResult;
%g%#=a;]q 9=;ETLL " RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
,u<aKae XZ&q5]PJI //得到欲修改键的句柄
zDofe* _{'HY+M SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
G( y@Tor+ x BMhk9b^0 RegCloseKey(hResult);
?gOZY\[ma .e%B' //修改注册表相应的值并释放键句柄
Nv_"?er+y <rF Y$
?x }
w.H\j9E
l gj Ue{cb5 2.给工具条指定用户特定的背景图案
s&zg!~@5b cwA+?:Ry} void CJhfDlg::OnAddBackGround()
fj])
&+Pcu5 {
1PJ8O|Zt8 d/:zO4v3 if(PictureNum==0){
Wtwh.\Jba ws$!-t4<( AfxMessageBox("没有可应用的选项!");
t6O/Q0_ AW:WDNQh8n return;
mEe JK3D[ R%N&Y~zH }
d.uJ}=| O
hcPlr CString picture;
|^E#cI UGJ#
"9 int sel=m_PicList.GetCurSel();
q#N8IUN}4 ro4 XA1 if(LB_ERR ==sel){
3?GEXO&,E -kd_gbnr3 AfxMessageBox("请先选中要应用的选项!");
p<3^= 8Y$ j5;eSL@/ return;
K"r'w8P S_B;m1 }
htGk: y2eeE CS] m_PicList.GetText(sel,picture);
f^f{tOX n.$wW
= //取得所需加入背景图案文件路径
C.$`HGv C0F#PXUy CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
<w d+cPZQr kiFTx
&gf HKEY hResult;
sX,oJIt QeVM9br)m RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
T6ajWUw v='h //得到欲修改键的句柄
4#m"t?6! vxzOG?Xc: SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
skn`Q>a 3yu{Q z5y, SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
S:GX!6> +[
944n RegCloseKey(hResult);
=?f\o*J) ',yY //修改注册表相应的值并释放键句柄
tc'`4O]c8 L{\au5-4 RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
jnuovM!x~ fN TPW] //得到欲修改键的句柄
I2=?H< r9@Q="J_) SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
GJY7vS^# ?B2 T'}~ SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
^\uj&K6l <tbsQ3 RegCloseKey(hResult);
*@r)3 m4~Co*]w //修改注册表相应的值并释放键句柄
`\:92+ l1\/ ` }
-$4#eG%3 PXk+Vi,%k p`3pRrER 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。