自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
_9<Mo;C KppYe9? VC修改注册表的方法与函数
3sl6$NKo 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
oE,TA2 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
HNLr}
Y j mH)8A+us 通过修改注册表实现IE换貌
Zlrbd 我们都知道,在注册表中,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()
nXERj; Q" +&<k}Mz {
AN)r(86L Fv:x>qZr@ if(AddressNum==0){
` ^;J<l y=AF
EP AfxMessageBox("没有可应用的选项!");
02-% B~oP :G&:v return;
p!\GJ a", J.]`l\ }
xWM?E1@ ;(Az CString address;
U6YHq2< }%D${.R] int sel=m_address1.GetCurSel();
^4et;
F% {YwdhwJP if(LB_ERR ==sel){
{e0(M*u .eyJ<b9 AfxMessageBox("请先选中要应用的选项!");
%\~U>3Q 2#s8Dxt return;
^~dC&!D QvJ29 }
pQ7<\8s* N:%Nq8I}: m_address1.GetText(sel,address);
CY$
1;/ ant2];0p //取得所需加入的网址字符串
FU;a
{irB MeAY\V%G=o CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
hBhbcWD,ka zjzEmX HKEY hResult;
+Eel|)Z*Q >:BgatyPH RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
q_[`PYT G3h"Eo?>g //得到欲修改键的句柄
4M+f#b1 ?8;WP& SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
)19#g1rn5 q Ll4t/p RegCloseKey(hResult);
x6^FpNgQ lI@Z)~ //修改注册表相应的值并释放键句柄
P,rLyx ?[%.4i;-h }
MM( ,D&
Z RJ{J~-q{ 2.给工具条指定用户特定的背景图案
fA=Lb^,M BgY|v
[M& void CJhfDlg::OnAddBackGround()
0wAB;|~*62 n#B}p*G {
wB+F/]]|N }G!'SZ$F 5 if(PictureNum==0){
!)05,6WQ <vu~EY0. AfxMessageBox("没有可应用的选项!");
^N`KT zvfdfQ-i return;
e)3Mg^ 4ywtE}mp }
fgHsg@33N "hZ `^"0b CString picture;
e-.(O8 ]/AU_& int sel=m_PicList.GetCurSel();
P2U4,?_e iTF%}( if(LB_ERR ==sel){
m}2hIhD9 Y^|15ek AfxMessageBox("请先选中要应用的选项!");
-w'g0/fD ^;?w<9Y return;
KvI/!hl\ =PnNett}a }
~bis!(}p- Iv{iJoe;UH m_PicList.GetText(sel,picture);
K)h<#F t{B6W)q //取得所需加入背景图案文件路径
nhd.c2t\ %O{FZgi%wA CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
T>&dPVmG, PE[5oH HKEY hResult;
aD~S~L! &]anRT# RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
w[G-=>; A}3E)Qo=G //得到欲修改键的句柄
'8I=Tn $lJ!f SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
OSom-?|w "`'+@KlE SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
'|M} 3sL ONc#d'-L RegCloseKey(hResult);
QqXaXx; @#9xSs# //修改注册表相应的值并释放键句柄
=Hj3o_g- }Fu2%L> RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
HhzP Kd H
'nLC, //得到欲修改键的句柄
C3 m_sv#e lHu/pSu@k SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
s GrI%3[e" l
5f'R SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
4dh>B>Q !'>#!S~h3 RegCloseKey(hResult);
j\.e6&5%SS F[fs^Q6S$ //修改注册表相应的值并释放键句柄
u4[JDB7tH +ERuZc$3, }
LI"N^K'z u#->? mrVN&. 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。