自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
rKl eEeK ]8@ VC修改注册表的方法与函数
w2K>k/v{- 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
$us7fuKE 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
aDE}'d1qo I#W J";kqB 通过修改注册表实现IE换貌
'2{60t_A 我们都知道,在注册表中,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()
QR$m i1Vv\ j'UWgwB {
?Uhjyi w"
A{R if(AddressNum==0){
5)gC< :r&4/sN}< AfxMessageBox("没有可应用的选项!");
)=0@4 +V#dJ[,8;. return;
p,\(j 5g 2:o^ }
jW}hLjlN YH-W{]. CString address;
>E>'9@Uh /)r[}C0 int sel=m_address1.GetCurSel();
2JHV*/Q gyCXv0*z if(LB_ERR ==sel){
WX$AOnEv &3P"l.j AfxMessageBox("请先选中要应用的选项!");
Q?dzro4C m .^WSy return;
N$cAX^~ ?C_Y2JY }
+^%0/0e IpVtbDW m_address1.GetText(sel,address);
Wk]E6yz6 zBqNE` //取得所需加入的网址字符串
-nB.
.q %v]-:5g'| CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
T?D]]x /tq e:* HKEY hResult;
p%e/>N.P (KT+7j0^ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
Kp/l2?J"
KocNJ
TB //得到欲修改键的句柄
<;dFiI-GO# t},71Ry SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
gq)uv`3 7:OF>** RegCloseKey(hResult);
`W4Is~VVv Bv}nG| //修改注册表相应的值并释放键句柄
!]#;' *BQy$dfE }
4I;$a;R! "%+9p6/ 2.给工具条指定用户特定的背景图案
;x4yidb6 wUmcA~3D void CJhfDlg::OnAddBackGround()
'zYx4&s 'tq4-11xB {
Oa7jLz'i l`*R !\ if(PictureNum==0){
R,W
w/D qLm
g18 AfxMessageBox("没有可应用的选项!");
!Bb^M3iA BE," lX return;
9 H~OC8R: [u/W h+ }
?uqPye1fc i8`0- CString picture;
'V:ah38 );ZxKGjc4 int sel=m_PicList.GetCurSel();
n7'X.=o7 7By&cdl if(LB_ERR ==sel){
qbQH1<yS< @Yh%.#\i% AfxMessageBox("请先选中要应用的选项!");
AJ85[~(lX s;YuB#Z return;
1Ozy;;\-9 wnbKUlb }
|kkg1M# ~Z
x_" m_PicList.GetText(sel,picture);
47
9yG/+\ =^gZJ@ //取得所需加入背景图案文件路径
FFID<Lf/2 <5l!xzvw CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
g;G.uF& |1^
!rHg HKEY hResult;
0]`%iG| l*<RKY8 RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
_9b;8%?Yf L:RMZp*bK //得到欲修改键的句柄
WY" `wM [78^:q-/0 SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
\>r<z46x 44(l1xEN+ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
t5jZ8&M5] w&^_2<a2 RegCloseKey(hResult);
Kq2,J&Ca3 <GRrw //修改注册表相应的值并释放键句柄
UqaV9 ,xsFBNCC RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
6$*ZH* khtYn.eaL //得到欲修改键的句柄
5t~p99#? W=@]YI SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
~V<imF %vFoTu)2 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
"OO"Ab{t a}MSA/K( RegCloseKey(hResult);
*FrlzIAom Y1Qg|U o //修改注册表相应的值并释放键句柄
4` zfrT^ l
d4#jV ei }
9>na3ISh aL%amL6CX ?go+oS^ 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。