自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
?Phk~ jE 3)}(M VC修改注册表的方法与函数
YPu9Q 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
b)N[[sOt 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
%B@! e|yX QTlvL 通过修改注册表实现IE换貌
k!T|)\nc+ 我们都知道,在注册表中,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()
M|d={o9Hp y<TOqn {
_}D%iJg# bG"HD?A_ if(AddressNum==0){
#,G1R7 :pRF*^eU AfxMessageBox("没有可应用的选项!");
m#JI!_~! WE0}$P: return;
T.kyV| 2UiR~P]% }
{;*}WPYb y,Jh@n';| CString address;
6Opa{] TXjloGv^ int sel=m_address1.GetCurSel();
P|N2R5(>T C}q>YRubZ if(LB_ERR ==sel){
n@hl2M6.x9 um7o !yg, AfxMessageBox("请先选中要应用的选项!");
+Gow5-( F|Q H return;
61} i5o /prYSRn8 }
)n( Q :$?Q D m_address1.GetText(sel,address);
1_uvoFLk 2:Q(Gl`<l //取得所需加入的网址字符串
}k7_'p&yk Hy] CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
gyev5txn b0rX QMu HKEY hResult;
KVN"XqE4 h./P\eDc RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
Zsj`F9*e ~EEs}i //得到欲修改键的句柄
Pz%~ST EiWd+v,QJQ SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
]3ifdGk id ?"PD"% RegCloseKey(hResult);
8YX)0i' /ylc*3e'4 //修改注册表相应的值并释放键句柄
_7"5wB?|+ 2/B)O)#ls }
gzf-)J CE ~@}` 2.给工具条指定用户特定的背景图案
G>w+#{( Z(e^ iH void CJhfDlg::OnAddBackGround()
M&KyA L%t@,O#, {
e)@3m. /:Lu_)5 if(PictureNum==0){
6S1m<aH6 8AL\ST51x" AfxMessageBox("没有可应用的选项!");
2 0tO#{Li F PR`tE return;
BMFF= <{Q'&T }
<41ZZ0<EwY 6B" egYv CString picture;
oehaQ#e /Vww?9U; int sel=m_PicList.GetCurSel();
8Lz]Z
h=ZU ^zr^ N?a if(LB_ERR ==sel){
XRtD< jlA" qf#)lyr<D6 AfxMessageBox("请先选中要应用的选项!");
o6a0'vU>< ]s_8A`vm return;
)8,|-o= Da.G4,vLh }
Q.Aa{d9e )nfEQ)L;h} m_PicList.GetText(sel,picture);
mJ5H=&Z xZ .!d.rn //取得所需加入背景图案文件路径
`@Oa lg ru9zTZZD CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
q7\Ovjs0 d`y!cu2} HKEY hResult;
7DD&~ZcD O;uG?.\ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
lDU_YEQ> r^fe4b //得到欲修改键的句柄
.;
Q:p* cU.9}-) SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
xHA0gZf sG7u}r SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
A8r^)QJP{ H t(n%;< RegCloseKey(hResult);
qv*7K@ JRaq!/[( //修改注册表相应的值并释放键句柄
;C.S3} p@
NaD=9 RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
u=x+J=AH b KtD"JG\ //得到欲修改键的句柄
H`9Uf) I\O\,yPhhP SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
zp}eLm:=d 8'
DW#% SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
!69&Ld I:98 $ r$ RegCloseKey(hResult);
C1kYl0zR[ 8^/I>0EZ //修改注册表相应的值并释放键句柄
b aV>N[F& Fh$slow4! }
}_9,w;M$ =FP0\cQ. n2B){~vE 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。