自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
;x%"o[[> EMQGP<[ VC修改注册表的方法与函数
fG9 ;7KG 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
`%; Hj _X} 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
KW-GVe%8f /oOZ>B%1s 通过修改注册表实现IE换貌
{ppzg`G\ 我们都知道,在注册表中,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()
FJ,"a%m/Q }C4wED. {
s|IY
t^ 6~c#G{kc if(AddressNum==0){
,_iq$I; `OFW^Esc AfxMessageBox("没有可应用的选项!");
17$'r^t,S jaw&[f
7 return;
xP4}LL9) e[
yN }
1r$*8|p bd]9kRq1K CString address;
4>A|2+K\ ;3x*pjLG:Q int sel=m_address1.GetCurSel();
b:Z&;A|"{ A:yHClmn if(LB_ERR ==sel){
3P@D!lV&K 5skxixG AfxMessageBox("请先选中要应用的选项!");
mww<Xm' vAp<Muj(a return;
<qg4Rz\c] J2<kOXXJ9 }
ijsoY\V50 p8Z?R^$9H m_address1.GetText(sel,address);
|Dt_lQp# (\0
<|pW //取得所需加入的网址字符串
Nv=78O1 &1(- 8z* CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
X NgcBSD i.k7qclL` HKEY hResult;
)fHr]#v 8~tX>q<@q RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
U%q-#^A F+"_] //得到欲修改键的句柄
}}"pQ!Z GLgf%A`5/_ SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
G4uG" |lt]9>| RegCloseKey(hResult);
,AmwsXN"F >`r3@|UY //修改注册表相应的值并释放键句柄
0:f]&Ng Xu8I8nAwl }
6<2H 7' 9 w$m\nV 2.给工具条指定用户特定的背景图案
=:aJZ[UU<2 w
lH\w? void CJhfDlg::OnAddBackGround()
T'9ZR,{F ak7kb7 5o {
XeX"IhgS>E MB!9tju if(PictureNum==0){
!!A0K"h #F`A(n AfxMessageBox("没有可应用的选项!");
t%;w<1E 2 /FQ;<L return;
(J[Xryub lDTHK2f }
-QroT`gy 3V<@Vkf5 CString picture;
.4p3~r?=S yL*]_ int sel=m_PicList.GetCurSel();
s'h;a5Q1'Q =hkYQq`Q if(LB_ERR ==sel){
'`3#FCg @@)2 12 AfxMessageBox("请先选中要应用的选项!");
1>"-!ADm !bP%\)5 return;
PD)"od ,;_+o] }
)P$|9<_q7x tO&ffZP8$ m_PicList.GetText(sel,picture);
v8)"skVnFG CuWJai:nQ; //取得所需加入背景图案文件路径
fC[za,PXaE EHk\Q\ CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
HR}O:2' DsejZ& HKEY hResult;
lj (y Ut;`6t RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
HwFX,? Iko]c_W0 //得到欲修改键的句柄
VG);om7`PD |5bLV^mv]i SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
8.i4QaU 83n%pS4x SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
/]_ t-> <7M-?g:vj RegCloseKey(hResult);
y3zP`^
Ix5&B6L8 //修改注册表相应的值并释放键句柄
rW:krx9 );$99t RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
s_'&_>D /8FmPCp}r //得到欲修改键的句柄
_y@].G mHxR4%i5 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
Fl-\{vOn !cwZ*eM SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
qI+2,6
sGI J;C:nE|V
RegCloseKey(hResult);
uh)S;3| 1^!SuAA@ //修改注册表相应的值并释放键句柄
>Icr4?zq `#N/]4(j }
|_V(^b} `POzwYh y0%1YY 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。