自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
X{\>TOk T{d7,.: VC修改注册表的方法与函数
RK#e7 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
Sx+.<]t2A 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
:.f =>s] :XcU @m 通过修改注册表实现IE换貌
o!^':mll 我们都知道,在注册表中,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()
?dlQE,hB$ 2<)63[YO {
T!eeMsI rc1EJ(c if(AddressNum==0){
YuSe~~F)j >/nS<y> AfxMessageBox("没有可应用的选项!");
bVSa}&*kM 1u75 return;
(o)nN8 @4Z>; }
H>_ FCV8 3g9xTG);eA CString address;
==`K$rM I
\zM\^S>] int sel=m_address1.GetCurSel();
&^FCp'J- !/ TeTmo if(LB_ERR ==sel){
?~uTbNR a{^[< AfxMessageBox("请先选中要应用的选项!");
T5.1qr L \ F#mwl,>" return;
>w+WG0Z
K 3&_O\nD }
Brr{iBz*" hNmC(saMGm m_address1.GetText(sel,address);
1s8 v E
f -q|K\>tgU //取得所需加入的网址字符串
))cL+r ?Z
{4iF CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
~'KymarPU 7kx)/Rw\B HKEY hResult;
]WR+>)ERb b>=MG8 RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
dX{|-;6vm ]?S\So+ //得到欲修改键的句柄
J?Brnf. 5s_7P"&H SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
E ;65k Z =:n>yZ3T RegCloseKey(hResult);
m]}
E0 vg"y$% //修改注册表相应的值并释放键句柄
I8@NQ=UV0 5:/
zbt\C }
f@l$52f3D m5Q,RwJ!xK 2.给工具条指定用户特定的背景图案
rM#jxAb _7#Ng@#\ void CJhfDlg::OnAddBackGround()
ZQ9!k*
^ 3P~I'FQ {
Wz}RJC7p $D
+6=m[ if(PictureNum==0){
h
1G`z ewg&DBbN" AfxMessageBox("没有可应用的选项!");
L22GOa0 W&ya_iP~C return;
,S
E5W2a] {j@
S<PD }
5n!
V^ ! (m80isl CString picture;
GY,l&.& <h:> :%# k int sel=m_PicList.GetCurSel();
{%5k1,/( $r)+7i if(LB_ERR ==sel){
Q*}#?g (iM"ug2 AfxMessageBox("请先选中要应用的选项!");
WL$Ee= RB.&,1 return;
pV{MW#e ,0%P3 }
,o7aIg&_H 4zs1BiMG m_PicList.GetText(sel,picture);
Q1J./C} aKXaor@0f. //取得所需加入背景图案文件路径
&S}%)g%Iv9 gQ4Q
h; CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
i*B@#;;F ?nJ7lLQA HKEY hResult;
O^ZOc0< |&B.YLx RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
Cv862kP 0&T0Ls#4 //得到欲修改键的句柄
/B)ZB})z yPrp:%PS SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
uH[d%y/ /3->TS SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
E;$)Oz }[XzM/t RegCloseKey(hResult);
im{'PgiR =KqcWN3k //修改注册表相应的值并释放键句柄
x'kwk ufAp7m@ud RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
Bf!i(gM 7^,C=2
//得到欲修改键的句柄
ktLXL;~X <ABN/nH SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
YY-{&+, Jv1igA21_h SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
4<._)_m k%-_z}:3V RegCloseKey(hResult);
{Ts@#V=: %"^$$$6% //修改注册表相应的值并释放键句柄
sW!pMkd_ @/h_v#W }
Jcf'Zw"\ 1];rW`Bw lxoc.KDtR 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。