自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
e{=$4F C{-pVuhK+ VC修改注册表的方法与函数
78wcMQNX9 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
{Bx\Z0+'& 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
HZNX1aQ|Q# <:w7^m 通过修改注册表实现IE换貌
y\x<!_&D 我们都知道,在注册表中,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()
P^UcpU, s0CRrMk {
CAO$Zt % |V:F. f if(AddressNum==0){
(TPD!= &*iiQ3 AfxMessageBox("没有可应用的选项!");
RA}PM?D/ ~n?U{
RmH return;
l:+1j{ d7 Up:#Zs2 }
}V{,
kK 53A=Ogk8S CString address;
(,>`\\ 23PSv8;EM int sel=m_address1.GetCurSel();
k95vgn% &IPT$=u if(LB_ERR ==sel){
iBCM?RiG Z:}^fZP AfxMessageBox("请先选中要应用的选项!");
4(NI-|q0 Vufw:}i+^ return;
_B2t|uQ 9Bn
dbSi }
7">.{
@S 8wOr`ho B m_address1.GetText(sel,address);
2mRso.Ah U
w)1yzX //取得所需加入的网址字符串
8cHZBM7' Z(s}
#- CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
a[/p(O ?~$y3<[ HKEY hResult;
j>U.(K F~:5/-zs RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
E?-K_p *\>& //得到欲修改键的句柄
#Xc~3rg9 S"dQ@r9 SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
\l`;]cA -Bc.<pFqp RegCloseKey(hResult);
Y9Pb D^pAf/ek@i //修改注册表相应的值并释放键句柄
wZ\0<skU =y<Fz*aA }
#(7OvW+y yfU1;MI 2.给工具条指定用户特定的背景图案
TZ/u"' ZS a P`;Nr= void CJhfDlg::OnAddBackGround()
4B|f}7%\ Lczcz"t {
:r\<DVj f~53:;L/ if(PictureNum==0){
bY`k`3v E yNCky AfxMessageBox("没有可应用的选项!");
(Lc%G~{ i}Y:o} return;
__a9}m4i7x 7':|f " }
4)`{ L$ Aam2Y,B CString picture;
(*p |Kzu hfY2pG9N int sel=m_PicList.GetCurSel();
! _QU- y(%6?a @ if(LB_ERR ==sel){
<fP|<>s$@1 Ay{4R AfxMessageBox("请先选中要应用的选项!");
'rSM6j F:n7yey return;
vnKUD| (h
E^<jNR }
H.YntFtD' H6L`239u m_PicList.GetText(sel,picture);
{3l]/X3 ?&[`=ZVn //取得所需加入背景图案文件路径
rTx]%{ >OQ<wO6 CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
7{p,<Uz<"U + 505 HKEY hResult;
G-Y8<mEh ^JH 4:
h RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
rx%lL Cjw|.c` //得到欲修改键的句柄
1v`*%95 ?@tp1?) SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
3t8VH`!mL{ 1%>/%eyn5 SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
0(]C$*~mk -?j'<g0 RegCloseKey(hResult);
tFG&~tNc 5Ba eHzI //修改注册表相应的值并释放键句柄
R@;kYS %/4ChKf!VR RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
UF?qL1w m'Ran3rp //得到欲修改键的句柄
"wdC/ 6<gh:vj SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
"zv?qS hivWQ$6% SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
p2\@E}
z aCQAh[T RegCloseKey(hResult);
) !3sB{H ,XR1N$LN8_ //修改注册表相应的值并释放键句柄
<"6}C)G caS5>wk`R }
6m?}oMz r q>@0i )[>{
Ie2 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。