自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
* *oDQwW]* +VJyGbOcC VC修改注册表的方法与函数
sHV?njZd 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
0bD\`Jiv, 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
D{qr N6g# PBcb*7W 通过修改注册表实现IE换貌
bPkz= ^- 我们都知道,在注册表中,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()
T1 1>&K) _KBa`lhE {
:22wq{ 'Q=(1a11 if(AddressNum==0){
U'~]^F%eyu q0['!G%[" AfxMessageBox("没有可应用的选项!");
Mhb~wDQl ,Ij/
^EC} return;
[@3.dd AM#s2.@ }
7{k?"NF 8wEJyAu2 CString address;
?(}~[ FBOgaI83G int sel=m_address1.GetCurSel();
0Pt%(^ NF-@Q@ if(LB_ERR ==sel){
-D1A nU6UjC|3 AfxMessageBox("请先选中要应用的选项!");
IJ:JH=8 -zzT:C return;
(.wR!l#! =.):tGDp }
;RQ}OCz9}8 64<*\z_ m_address1.GetText(sel,address);
)YZx]6\l) a1Q W0d //取得所需加入的网址字符串
!\OX}kHX5 Um*&S.y CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
I=
cayR sWKdqs HKEY hResult;
~0}d=d5g `7?EE1o
RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
#>sIXY >McEuoZx9 //得到欲修改键的句柄
QNx xW2+ xX Dj4j, SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
$ERiBALN: %&s4YD/{ RegCloseKey(hResult);
N&|,!Cu {M\n //修改注册表相应的值并释放键句柄
PR,8c YlR9
1LX }
#)iPvV' XPnHi@x 2.给工具条指定用户特定的背景图案
~]'yUd1gSZ [N<rPHT void CJhfDlg::OnAddBackGround()
$e{}SQ;fW 3~Ap1_9 {
vkeZ!klYB +Y$EZL.A if(PictureNum==0){
_c}# f\ +_ <\P
`< AfxMessageBox("没有可应用的选项!");
2zuQeFsK I<+:Ho=6 return;
^ohIJcI- \m:('^\6o }
WF2t{<]^e bL+}n8B CString picture;
ofPv?_@ aP"!}* int sel=m_PicList.GetCurSel();
#wZH.i# e0<O6 if(LB_ERR ==sel){
vUDMl Z H5o=nWQ6e AfxMessageBox("请先选中要应用的选项!");
QV4FA&f& wz BI<0]z return;
sa"}9IE*8 J93xxj }
{kr14l*2 w"?RbA m_PicList.GetText(sel,picture);
2IUd?i3~l nlaW$b{= //取得所需加入背景图案文件路径
q;7DH4;t Fh|{ib CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
i6g=fx6j* {Byh:-e< HKEY hResult;
'S:$4j c]/S<w< RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
P+QL||>L Xg*](>/\, //得到欲修改键的句柄
NFR>[L V -Zp BYX5e_ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
|.L_c"Bc !e*T.
1Kz SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
U.JE \/ 5}c8v2R:B RegCloseKey(hResult);
1l Cr? =%c\<<]aV //修改注册表相应的值并释放键句柄
TwI'XMO;A g4952u RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
j-.Y!$a%6 OmS8cSYGc //得到欲修改键的句柄
Hmnxmgx z,4 D'F& SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
ou-uZ"$,c e`OQ6|.k8 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
1:>F{g ]}p<P):hO RegCloseKey(hResult);
O?cU6u;W '4Fwh]Ee //修改注册表相应的值并释放键句柄
8/&4l,M5 _A])q }
)nFyHAy- t,IOq[Vtk .{} 8mFi1 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。