自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
#l{qb]n] ~~wz05oRG
VC修改注册表的方法与函数
97<Y.
0 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
w[]7{D]; 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
+O\6p U_oMR$/Z 通过修改注册表实现IE换貌
& ({X9 我们都知道,在注册表中,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()
9>[$;> #J1a `}x {
s}/YcUK ]]9eUw= if(AddressNum==0){
"4Anh1,js 'B6D&xn'%& AfxMessageBox("没有可应用的选项!");
O+z-6:` %Z.>)R4 return;
d]w*fn m!!uf/ }
><^A4s tXPS@4F CString address;
W99Fb+$I E~{-RZNK int sel=m_address1.GetCurSel();
/:C"n|P7Z j3A+:KDn3n if(LB_ERR ==sel){
/I".n] k6G23p[9 AfxMessageBox("请先选中要应用的选项!");
KHdj#3<AR oX!s u return;
-OVJ] CDR^xo5
dP }
#YjV3O5< 2u#{K9g m_address1.GetText(sel,address);
+O9l@X$l= /m9t2,KB //取得所需加入的网址字符串
PvKe|In( &/Tx@j^.C CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
= `70]% 85Ms*[g HKEY hResult;
Y@;bA=Du} /T*{Mo{B RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
vC+mC4~/( RI-whA8+ //得到欲修改键的句柄
o$Hc5W([Z DH m$gk SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
O `rrg~6# \/{qE hP RegCloseKey(hResult);
Lf7iOW9U3 (Z6[a{}1i //修改注册表相应的值并释放键句柄
PP$Ig2Q 1AA(qE }
4!iS"QH?;^ i~k?k.t8 2.给工具条指定用户特定的背景图案
WMl_$Fd6 $c f?`k void CJhfDlg::OnAddBackGround()
}RW4 BOfO$J} {
YHCXVu<.b \h_hd%'G if(PictureNum==0){
${e(#bvGZ tHhY1[A8m AfxMessageBox("没有可应用的选项!");
9$S2:2(G 0*q~(.>a return;
Dt.OZ4w5 ,CwhpW\Y }
I>G)wRpfR' b\H(Lq17 CString picture;
bncK8SK Gf]oRNP,N int sel=m_PicList.GetCurSel();
<1_?.gSi mQ' ]0D S if(LB_ERR ==sel){
Z p]Bs t_P1a0Zu AfxMessageBox("请先选中要应用的选项!");
28Q`O$=v !A!zG)Ue< return;
uA\A4 v }P~g }
_BcB@a OJkPlDym m_PicList.GetText(sel,picture);
^!Bpev ,gD30Pylz //取得所需加入背景图案文件路径
(}]74Lc "ZT=[&2 CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
1NJ*EzJ~? Ya\G/R HKEY hResult;
0fNWI KGK8;Q,O RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
8v(Xr}q,r (;Lz`r' //得到欲修改键的句柄
ux{OgFfi :UFf6T? SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
}R}tIC-: AGrGZ7p] SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
F fl`;M =>-b?F0(c RegCloseKey(hResult);
Zj`eR\7~ TX;OA"3=\- //修改注册表相应的值并释放键句柄
Ig$5Ui n>Zkx+jLj< RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
9H P)@66 Oi
l>bv8 //得到欲修改键的句柄
l 4~'CLi MY1
tYO SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
R Af+%h* &QCqaJ- SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
V 9=y@`; I|iI
,l/9 RegCloseKey(hResult);
swlxV@NQ qxd{c8 //修改注册表相应的值并释放键句柄
^_2Ki \gIdg:"02 }
US>
m1KsX Uc7X) L~vNW6#W 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。