自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
kNT}dv]< U:MPgtwe VC修改注册表的方法与函数
{QbvR*gv 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
4CQ"8k(S" 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
/m(=`aRt rCS#{x 通过修改注册表实现IE换貌
$7QoMV 8V 我们都知道,在注册表中,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()
NxVw!TsR Fb/XC:AD {
QI]Ih Sa"9^_.2# if(AddressNum==0){
Dfd-^N!
SlSM+F AfxMessageBox("没有可应用的选项!");
|v[ Rp=?] <*t4D-os return;
U!XS;a) A:y.s;<L0 }
c}[+h5 5/gDK+%4D( CString address;
dq IlD!
eZr&x~]
-w int sel=m_address1.GetCurSel();
=<@\,xN>C
l%Gw_0.?e if(LB_ERR ==sel){
5'w^@Rs5 /%4_-C pm AfxMessageBox("请先选中要应用的选项!");
c9j*n;Q N~g:Wf! return;
BZb]SoAL n,~;x@=5 }
\([WH!7 8F)G7
H, m_address1.GetText(sel,address);
577:u<Yt CC;! <km //取得所需加入的网址字符串
'cNKjL; qzFQEepso CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
NNG}M(/V _MWM;f`b HKEY hResult;
j#0j)k2Q 7ZUiY RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
y<XlRTy[} $|KaBx1 //得到欲修改键的句柄
;NV'W] [!^-J}^g~\ SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
V@d)?T T\VNqs@ RegCloseKey(hResult);
x90jw$\%7 *?yJkJ" //修改注册表相应的值并释放键句柄
5cK@WE: Px5t,5xT8 }
+pH@oFNK \Hqc9&0 2.给工具条指定用户特定的背景图案
aTGdmj! A =Dhod void CJhfDlg::OnAddBackGround()
Px M!U!t kl1Y] ?z} {
e75UMWaeC <Fs-3(V+\ if(PictureNum==0){
AGYm';z3 ,}xbAA# AfxMessageBox("没有可应用的选项!");
7%OKH<i\2< 9Q W&$n^ return;
kC$&:\Rh (#q<\` }
4R>zPEo ,jy*1Hjd CString picture;
}a&mY^ Pw@olG'Ah int sel=m_PicList.GetCurSel();
5&CDHc7Oj Sx]
T/xq if(LB_ERR ==sel){
i.iio- 'mdM q=VI AfxMessageBox("请先选中要应用的选项!");
oKFT?"[X RA a[t :| return;
kqvow3u 7:h!Wj-a] }
,J mbqOV?! J
NC m_PicList.GetText(sel,picture);
n,P5o_^: Swtbl`, //取得所需加入背景图案文件路径
:9l51oE7 1u]P4Gf= CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
K#K\-TR|$ Aox3s? HKEY hResult;
e=/&(Y lf>nbvp RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
BzpP7 ZWV :^C'<SY2Gs //得到欲修改键的句柄
=QV::/ &[?CTZ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
*! :QdWLq -%IcYzyA SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
7Tf]:4Y" _-cK{ RegCloseKey(hResult);
,7|;k2 <
/p8r //修改注册表相应的值并释放键句柄
Mo|wME#M d]0a%Xh[ RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
W( *V2<$o Em13dem //得到欲修改键的句柄
qH%")7> myQ&%M
gx SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
7z~Ghz p4X{"Z\mn SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
ul5|.C !)Ni dG RegCloseKey(hResult);
]Ql 0v"` F us)*2`?6t //修改注册表相应的值并释放键句柄
H5wb_yBQ+ J/D|4fC }
%4>x!{jwV ~hN~>0O i6no;}j 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。