自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
BoHpfx1C x{#W84 VC修改注册表的方法与函数
B"=w9w] 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
Gsa~zGN 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
+/4wioGm Y]])Tq;h5 通过修改注册表实现IE换貌
JJVdq-k+` 我们都知道,在注册表中,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()
,)%$Zxng M
sQ>eSk {
IT=<p60" (~OP)F). if(AddressNum==0){
j$Wd[Ja+O
y)GH=@b AfxMessageBox("没有可应用的选项!");
'4]_~?&x .LA?2N return;
#[ ?E, m*H' Cb }
cPbAR' :oO
?A CString address;
"`Mowp* s>c0K@ADO int sel=m_address1.GetCurSel();
G e+T[ (,OF<<OH if(LB_ERR ==sel){
TAp8x `|WEzW~ AfxMessageBox("请先选中要应用的选项!");
bd)'1;p 4I!g?Moh return;
KuJNKuHa. /wT<p }
_(:<l
YaY Wf:LYL m_address1.GetText(sel,address);
B&>z&!} r<c&;* //取得所需加入的网址字符串
A5?q&VS}p kY^ k*-v CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
am+w<NJ(us 7r o&Q% HKEY hResult;
gAr=fq-| K7c[bhi_w RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
{@ Z=b5/P L%;[tu(* //得到欲修改键的句柄
UU*v5& ,#U[)}im SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
bYBE h n A~({vb' RegCloseKey(hResult);
m^gxEPJK xO&qo8* //修改注册表相应的值并释放键句柄
z)Lw\H^/ K$I`&M( }
JA~q}C7A7o 7#(0GZN9h% 2.给工具条指定用户特定的背景图案
o[)*Y`xq<w )kD B*(? void CJhfDlg::OnAddBackGround()
>Og| *g spT$}F2n {
_p^$.\k" \03ZE^H if(PictureNum==0){
ZI.Czzx\= Ey=ymf.} AfxMessageBox("没有可应用的选项!");
i>O8q%BnJ 8]D0) return;
q_cP<2`@V ![9$ru }
cx]H8]ch7 ^.9DfA0 CString picture;
=Cd{bj.8 _L+j6N.h1 int sel=m_PicList.GetCurSel();
0n}v"61q \/64Xv3L0 if(LB_ERR ==sel){
b] Xdf4%/Op AfxMessageBox("请先选中要应用的选项!");
bYO['ORr@ k~F;G=P return;
zf>*\pZE H:S<O%f }
Gt)ij?~ P=PeWX*L<Z m_PicList.GetText(sel,picture);
rp+]f\]h cyo[HI?WM //取得所需加入背景图案文件路径
5'( T*" [(eX\kL CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
NcBz(" W,"Re,`H HKEY hResult;
n
=WH=:& tW
a'[2L RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
?GlXxx=eV 9c%CCZ //得到欲修改键的句柄
Zl>dBc% G<*
Iw>ep SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
"7'P Lo3O F-$!e?,H SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
y+Hz(}4 7377g'jL RegCloseKey(hResult);
:%Oz:YxC/ 2W2T //修改注册表相应的值并释放键句柄
$8xb|S[ !/!ga)Y RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
>:4`y"0 C JER&"em7 //得到欲修改键的句柄
nmts% u #]6{>n1*+w SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
T=)qD2? E3l*_b0 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
KPI96P /Q3\6DCl RegCloseKey(hResult);
7F6B NPrLM5 //修改注册表相应的值并释放键句柄
^!d0abA SJ<v< B }
m./PRV1$x KX]!yA KbtV> 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。