自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
Fb.wm MT}9T VC修改注册表的方法与函数
iCa#OQ 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
05$CIS>! 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
7'CdDB6&. !-p5j3 A4L 通过修改注册表实现IE换貌
:[,-wZiT~6 我们都知道,在注册表中,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()
RQ!kVM@ <U$x')W {
Qne@Vf kA t#=W'HyW8 if(AddressNum==0){
/Rf:Z.L 4ba[*R2 AfxMessageBox("没有可应用的选项!");
;y/&p d+ xN'$Yh
return;
-QN1=G4 3fM8W>
*7 }
yX0nyhq BF
b<"!Y CString address;
`1{Y9JdQ QVJq% P int sel=m_address1.GetCurSel();
#p*D.We TD!--l*gL if(LB_ERR ==sel){
e];lDa#4-Y &N:Iirg AfxMessageBox("请先选中要应用的选项!");
Py y!B ;G.5.q[A return;
T\?$7$/V 0Ta&o-e }
\|&KD vJ9I z m_address1.GetText(sel,address);
. |%n"{ R-LMV //取得所需加入的网址字符串
xsu9DzPf&{ & %A&&XT9 CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
,cE yV74 `Y O(C<r- HKEY hResult;
@QteC@k {ppzg`G\ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
/9ctmW1!< ;`Nh@*_ //得到欲修改键的句柄
iR?}^|] z_93j3# SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
e[
yN (Zg']) RegCloseKey(hResult);
UodBK7y aD]!
eP/) //修改注册表相应的值并释放键句柄
ZtyDip'x Jvc:)I1NE7 }
Y<L35
? m<H{@ZgN( 2.给工具条指定用户特定的背景图案
m8@&-,T KpA1Ac)T void CJhfDlg::OnAddBackGround()
<O5WY37"q e:%|.$4OG {
b9-IrR4h Mg#yl\v if(PictureNum==0){
8EI9&L> 4
km^S9 AfxMessageBox("没有可应用的选项!");
Q$uv
\h; JIhEkY return;
>H^#!eaqw |lt]9>| }
!_vxbfZO dvZH ~mF CString picture;
rtS' 90` Y{D%v int sel=m_PicList.GetCurSel();
3pg=9*{ 0z'GN#mT5 if(LB_ERR ==sel){
H4s~=iB 9.8%Iw AfxMessageBox("请先选中要应用的选项!");
t;BUZE_!0c ;-6-DEL return;
4vEP\E3u<j B*N1)J\5 }
sxsb)a _bGkJ= m_PicList.GetText(sel,picture);
SRwD`FF N ai5!_' //取得所需加入背景图案文件路径
gs5(~YiT6 qT48Y CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
=}vT>b 1>"-!ADm HKEY hResult;
6|zhqb|s K#YQB3rX RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
`PC9t)%.pV 7
!$[XD //得到欲修改键的句柄
CuWJai:nQ; &^r>Q`u
SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
gxN>q4z 51SmoFbMz SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
Ut;`6t G18w3BFx RegCloseKey(hResult);
}5-w,m{8/ GC{M"q|_ //修改注册表相应的值并释放键句柄
KNUK]i&L {drc}BL_ RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
/'+>/ L=l&,ENy //得到欲修改键的句柄
Ks-$:~?5": "j@\a)a SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
;f[lq^eV $"r9U|6kk SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
<Dd>- K 2;8m0+tl RegCloseKey(hResult);
f8Iddm# Mfj82rHg //修改注册表相应的值并释放键句柄
A*EOn1hN FEaT}/h; }
x4oWZEd UFG_ZoD+ j]Jgz< 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。