自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
ov|d^)' I"xo*} VC修改注册表的方法与函数
O6@j &*jS 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
6 [k\@&V- 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
R1PkTZP& ;[(oaK@+n 通过修改注册表实现IE换貌
a a<8,; 我们都知道,在注册表中,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()
} FE>|1 3W V"U {
x-XD.qh7Hr QZ!Y2Bz(4 if(AddressNum==0){
O8^A5,2@3>
_,kj:R. AfxMessageBox("没有可应用的选项!");
7 G)ZN{' tE.FrZS return;
P)"noG_'i >d@&2F TO }
i|c'Lbre` ht|z<XJ CString address;
vp1941P M\vwI" int sel=m_address1.GetCurSel();
rW<KKGsRWQ &)2i[X if(LB_ERR ==sel){
60P<4 $yN{-T" AfxMessageBox("请先选中要应用的选项!");
o\BOL3H UMv.{iEj return;
,ZaRy$? Gq+z /Be }
Y)1PB+ PvzcEV m_address1.GetText(sel,address);
B|Du@^$ dW)B1iUo! //取得所需加入的网址字符串
<qtr B#exHf8 CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
y?rPlA_ u6?Q3
bvI HKEY hResult;
yZ
@"\Z! :uP,f<=)K RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
i=ea
?eT` YA''2Ii //得到欲修改键的句柄
O $LfuL iyA'#bE- SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
z[LNf.)} ? 8)'oMD RegCloseKey(hResult);
Z.c'Hs+; t=rEt>n~L //修改注册表相应的值并释放键句柄
I+BHstF5um bG 7O }
oin$-i|Xp! 8N!b>?? 2.给工具条指定用户特定的背景图案
"K ~ gRrL[z void CJhfDlg::OnAddBackGround()
9l|@v=gw. IW>T}@
| {
+GG9^:<yr dOa+(fMe if(PictureNum==0){
>5_2_Y$" ATJWO1CtB AfxMessageBox("没有可应用的选项!");
2!0c4a^z ?b*s.
^ return;
:a^t3s C^3 <={ }
.GV;+8HzS 1qf!DMcdZ CString picture;
xj[(P$,P ap{2$k , int sel=m_PicList.GetCurSel();
7c~u=U" J,zO2572u if(LB_ERR ==sel){
e0J6Ae4V[ (ZY@$'' AfxMessageBox("请先选中要应用的选项!");
vq!_^F< +QE^\a return;
<x&%~6j *X4PM\ck }
r\blyWi dlG=Vq&Y m_PicList.GetText(sel,picture);
#(1j#\ %zSuK8kxV //取得所需加入背景图案文件路径
{'AWZ( ;\[(- )f!= CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
i| ZceX/ <}sq?Sfq! HKEY hResult;
l2&`J_" 8P"_#M?! RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
MdXchO-Lyc v$=QA:!U //得到欲修改键的句柄
XEdzpkB IXb}AxBf SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
i,|0@Vy gl]E_%tH SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
eYC ^4g%l( EZYBeqv RegCloseKey(hResult);
@]![o % =+x yI //修改注册表相应的值并释放键句柄
~u.T- 0F TO-nD> RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
lhi_6&&[8 Fh*j#*oe //得到欲修改键的句柄
sg8/#_S1i @o-B{EH8 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
-_<}$9lz (?H0+zws^ SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
l9Q(xuhv @?[1_g_'P RegCloseKey(hResult);
jr)7kP@ [y0O{,lI //修改注册表相应的值并释放键句柄
Iu{kPyx 8&Myva }
*#TYqCc+g cS. -7
}/,HM9Ke 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。