自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
Ly7!R$X C#;@y|Rw VC修改注册表的方法与函数
R{?vQsLk 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
jJBnDxsA 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
L\e>B>u y bQP E/9 通过修改注册表实现IE换貌
8:thWGLN 我们都知道,在注册表中,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()
(PRBS\*G }"_j0ax {
:$g8Zm,y 0/ !,Dn if(AddressNum==0){
LnFWA0y J[@um: AfxMessageBox("没有可应用的选项!");
W%o|0j\1GU cSK&[>i)4 return;
0y~<%`~ ,O]l~)sr| }
,%W<O. XV>&F{ CString address;
inAAgW#s} <x0H@?f7 int sel=m_address1.GetCurSel();
zN~6HZ_:^ c0ez/q1S if(LB_ERR ==sel){
he$XLTmr: V*RdDF7 AfxMessageBox("请先选中要应用的选项!");
uLk]LT Qx)Jtb0`V return;
fP[& a9l !%PWig- }
g5S?nHS} B4ZIURciGz m_address1.GetText(sel,address);
T6M+|"92 PB53myDQ //取得所需加入的网址字符串
XIAeCU g=l:cVr8y CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
XiQkrZ QTmZ(>z HKEY hResult;
,=BLnsg !kL> ,O>/ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
<
g|Z}Y 2p!"p`b~ //得到欲修改键的句柄
xHo&[{ Pc_VY>Ty SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
JObMZA$ 2c(aO[%h9 RegCloseKey(hResult);
Jblj^n?Bm A8DFm{})c //修改注册表相应的值并释放键句柄
zt=0o|k %Dig)<yx }
<>Y?vC &dR=?bz-A 2.给工具条指定用户特定的背景图案
iv&v8;B q,%:h`t\ void CJhfDlg::OnAddBackGround()
? _g1*@pA hhI)' $ {
jrMe G.e=D }uY!(4Rw if(PictureNum==0){
VDbI-P&c P"_$uO( 5x AfxMessageBox("没有可应用的选项!");
=ll=)"O EU-]sTJLF return;
~9\zWRh r0]4=6U }
q|.dez' #1.YKo CString picture;
]N{0:Va@D beXNrf=bG int sel=m_PicList.GetCurSel();
hk>;pU( MJ{%4S{K,p if(LB_ERR ==sel){
)C%N]9FvY kA wNly AfxMessageBox("请先选中要应用的选项!");
i38[hQR9a [KJ
q return;
q,>?QBct* kAA>FI6 }
++-{]wB3=.
#^#HuDH m_PicList.GetText(sel,picture);
%A/_5;PZ/ wzCUZ1N9q //取得所需加入背景图案文件路径
fbvbz3N 28.~iw CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
tBATZ0nK`Q .TJEUK HKEY hResult;
,u9M<B<F a->3`c RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
XT>.`, sv e8=YGx^o` //得到欲修改键的句柄
R&f^+0%f -O!/Jv"{,[ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
rN)V[5R#M {a(&J6$VE SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
I@#;nyAj" 6NWn(pZ]p RegCloseKey(hResult);
_~u2: yl( 5Por "&% //修改注册表相应的值并释放键句柄
]b/S6oc6 8flOq"uK^ RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
[U@;\V$ _ *f //得到欲修改键的句柄
v
*-0M @%ip7Y]e SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
PQN@JaD +HT1 ct+dI SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
-_C#wtC LUX*P7*B RegCloseKey(hResult);
!k3e\v| b75$?_+ //修改注册表相应的值并释放键句柄
?p<.Fv8. u"1rF^j6k }
s*/ bi
W q$(5Vd: bg,9@ }"F 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。