自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
HxZ.OZbR +;dXDZ2 VC修改注册表的方法与函数
=T4u":#N; 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
tFiR!f) 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
3{e'YD~hP g8l5.Mpx 通过修改注册表实现IE换貌
p,;mYm s 我们都知道,在注册表中,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()
LWD#a~ nv)))I\ {
w.uK?A>W, hg8Be6G< if(AddressNum==0){
{fU?idY)c =!CU $g AfxMessageBox("没有可应用的选项!");
Pw{"_g krjN7& return;
@1g&Z}L
o 4H-j
.|e }
kYlg4 .~M oRq3 pO}f CString address;
CW-A e _*E!gPO int sel=m_address1.GetCurSel();
#ib^Kg G6Nb{m if(LB_ERR ==sel){
NAJVr}4f )7Ixz1I9g AfxMessageBox("请先选中要应用的选项!");
W5Zqgsy($F Xa,\EEmQ return;
-zKxf@" Q'K$L9q }
Ly>OLI0x_ p411 `]Zf m_address1.GetText(sel,address);
jct./arK :Q7mV%% //取得所需加入的网址字符串
7@l<?
( o @KW/RN" CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
LuS+_|]x f{ ^:3"i HKEY hResult;
iSiDSeW8
%w5[*V RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
J +q|$K6 Qqq
<e //得到欲修改键的句柄
Q["t eo]DQ eFFc 9'o SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
9i%9
WYszk ,E RegCloseKey(hResult);
/oL8;:m _a5(s2wq+ //修改注册表相应的值并释放键句柄
MhxDV d ,@.EpbB }
EB,4PEe: Q9sl fQ 2.给工具条指定用户特定的背景图案
H;S%Y`V 0+ `Pg void CJhfDlg::OnAddBackGround()
h}&b+1{X ; LMWNy4 {
/S~m)$vu Yb:pAzw6 if(PictureNum==0){
_Y!sVJ){,c 8\Hr5FqB( AfxMessageBox("没有可应用的选项!");
.:9s}%Zr FS@A8Bb return;
&HDP!SLS ,.v7FM^gO }
Ns=AjhLc z A-uB\ L CString picture;
n:4uA`Vg a$JLc a int sel=m_PicList.GetCurSel();
79BaDB`{a GwLFL.Ke if(LB_ERR ==sel){
(
u`W!{1\ ln<]-)&C AfxMessageBox("请先选中要应用的选项!");
8)wt$b jd:B \%#![ return;
+sZUJ k;Fh4Hv }
qf8[!5GM '{[),*nC n m_PicList.GetText(sel,picture);
)/|6'L-2 J|~26lG //取得所需加入背景图案文件路径
uaw < M+xdHBg CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
n&Yk< k6**u HKEY hResult;
ziEz.Wn" ry0%a[[ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
<@uOCRbV cQUC.TZ_ //得到欲修改键的句柄
1HR~G9 c&'JmKV>& SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
ZafboqsDL .$rC0<G[K SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
Hs(D/&6% -?a<qa?$ RegCloseKey(hResult);
"!UVs+)] -1r2 K //修改注册表相应的值并释放键句柄
=A!S/;z> e@]Wh) RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
vO@s$qi 9#/(N#> //得到欲修改键的句柄
.tXtcf/ L;6.r3bL SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
`a]44es9q ,|T7hTn= SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
Bl;KOR b=[?b+ RegCloseKey(hResult);
rOfK~g,X slW3qRT\k //修改注册表相应的值并释放键句柄
/^7iZ|>:M: ]MTbW=*}ED }
5g
;ac~g /VTM 9)u 8v92Ng7 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。