自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
ERC<Dd0 s0lYj@E' VC修改注册表的方法与函数
-)RJ\V^{9 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
]]/lC 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
xiCN
qk3 PpFsp( )x 通过修改注册表实现IE换貌
!
Rvn'|! 我们都知道,在注册表中,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()
f[}|rf s OQcx\dK {
M=[th QiU_hz6?v if(AddressNum==0){
r0Z+RB^I =YHt9fb$c AfxMessageBox("没有可应用的选项!");
j ug'g v$3_o : return;
#_fY4vEO ?gG, t4D }
MD4\QNUa)* +?V0:Kz] CString address;
[+gzdLad l&|)O6N int sel=m_address1.GetCurSel();
&k+*3.X ev"M;"y if(LB_ERR ==sel){
JY@X2'>v/ g@u;Y5 AfxMessageBox("请先选中要应用的选项!");
O<`,,^4w/ -l JYr/MSL return;
xFwXW) 27iy4(4 }
_+n;A46 c'rd $ m_address1.GetText(sel,address);
kwF] TO
S [>p6 //取得所需加入的网址字符串
b0YNac.l Qi:j)uDW CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
~p^7X2% ! Qc3?}os2 HKEY hResult;
)E~_rDTl QkE,T0,/?h RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
Ut_mrb+W nsl*Dm"*F //得到欲修改键的句柄
@'gl~J7 :t5uDKZ_j) SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
7}o6_i :l`i4kx RegCloseKey(hResult);
I.9o`Q[8& h!Y?SO.b //修改注册表相应的值并释放键句柄
/{R3@,D[] bg1un@%!l }
$m8leuo) O#G|
~'., 2.给工具条指定用户特定的背景图案
lR}%)3_k PY-+ Bf void CJhfDlg::OnAddBackGround()
A8!Ed$@ H
pFb{ {
0Ve%.k %YCd%lAe, if(PictureNum==0){
VF=Z` I+~bCcgPi AfxMessageBox("没有可应用的选项!");
9`INC~h z5 pc3: return;
~<eVl
l= E*^9|Y[ }
SUc6/'Rdr (H1lqlVWV# CString picture;
sX5sL 2Y;!$0_rv int sel=m_PicList.GetCurSel();
Aqu]9M~ R+F,H` if(LB_ERR ==sel){
H!. ZH(asY 3KT_AJ4} AfxMessageBox("请先选中要应用的选项!");
H+R7X71{ yZ~b+=UM return;
x
^[F]YU AWL[zixR }
~v\hIm3=m YLmjEs% m_PicList.GetText(sel,picture);
#s{aulx ] 9@X?q //取得所需加入背景图案文件路径
EZ{/]gCK Of#K:`1@ CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
esteFLm`6 $l#{_~
"m7 HKEY hResult;
'%ebcL Efvq?cG& RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
CrO`=\ ]hKgA~; //得到欲修改键的句柄
6}STp_x C d|W#.6 SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
tIp{},bQ^ <N-=fad] SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
QXB|!' "qgu$N4/> RegCloseKey(hResult);
{NV:|M ! {wv&t R; //修改注册表相应的值并释放键句柄
}1F6?do3& &M=3{[ RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
9M]^l, |=u96G~N //得到欲修改键的句柄
6+)x7g1PL SXh?U,5u SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
%Gu][_.L Otxa<M+" SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
Ysl9f1>% NhCAv+ RegCloseKey(hResult);
zU
b8NOi hMWo\qM //修改注册表相应的值并释放键句柄
?DRR+n _ 7dHIW!OA }
,m:6qdN |mvM@V;^8{ UFIjW[h 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。