自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
t$Z#zxX p'
FYK| VC修改注册表的方法与函数
Bk1Q.Un 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
.Go 3'$'v 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
9)QvJ87e@7 ds4)Nk4%O 通过修改注册表实现IE换貌
s Hu~;) 我们都知道,在注册表中,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()
kN>AY'1 x=bAR%i~ {
dO e|uQXyD tsZrn if(AddressNum==0){
$IQ !g 3L4lk8Dd AfxMessageBox("没有可应用的选项!");
s]r"-^eS3 % ;2x.
return;
qf9.S)H1Z {q"l|Oe }
ge[+/$(1 S3Tww]q CString address;
AtA}OY]D/ lV^sVN Z] int sel=m_address1.GetCurSel();
xgt dmv% 8_ns^6XK5p if(LB_ERR ==sel){
F[c;iM(^ n}yqpW!%n AfxMessageBox("请先选中要应用的选项!");
q"A( l ;#!`cgAh return;
h?DMrYk_%# +aV>$Y }
^m{kn8 3M(:}c m_address1.GetText(sel,address);
|_%| xUzSS@ot^ //取得所需加入的网址字符串
#:3E.= 59p'Ega. CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
5sx-u!7 t_WNEZW7f HKEY hResult;
l0b Y R {+Rvk RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
3Cwqy#X#8 l9q
ygh //得到欲修改键的句柄
>=i47-H v.,C"^W SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
{JzX`Z30l .) B _~tct RegCloseKey(hResult);
yU*j{>%RsK 'j!7
O+7y //修改注册表相应的值并释放键句柄
6pQ#Zg()vp ^[8e|,U }
(9$/r/-a +tOBt("5/ 2.给工具条指定用户特定的背景图案
s%J|r{F6 r 06}@ 7 void CJhfDlg::OnAddBackGround()
X1i6CEa< :*6tbUp {
l<{]%=Qg Zcz)FP# if(PictureNum==0){
xZL`<3? HH2*12e AfxMessageBox("没有可应用的选项!");
Lqbu] W9Bl'e return;
oyJ/Oe
{ <<w $Ur }
t[F tIj6 vBQ5-00YY= CString picture;
>3X!c"#l +*d,non6v int sel=m_PicList.GetCurSel();
(ZjIwA9> ?Gj$$IAe if(LB_ERR ==sel){
3b{8c8N^ @=b0>^\m AfxMessageBox("请先选中要应用的选项!");
As1Er[> #*
S0d1 return;
)AqM?FE4R B.K"1o }
VE6T&fz` z(>{"t<C m_PicList.GetText(sel,picture);
#v')iR"
{`KgyCW: //取得所需加入背景图案文件路径
^Q4w<sX' ||}|=Sz CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
<Ky\ ^ s+tS4E? HKEY hResult;
I1&Z@[ <k5FlvE2 RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
$ZXy&?4 _W]2~9 //得到欲修改键的句柄
.?_wcp= bu%@1:l SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
s>"=6 gb 2sy{ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
vP3Fb;
<=cj) RegCloseKey(hResult);
3>0/WbA:7E Xe*@`&nv@ //修改注册表相应的值并释放键句柄
R?>a UFM )dJM RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
nPfVZGt <hdR:k@# //得到欲修改键的句柄
//e.p6"8h _w^p~To^ SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
C\.? 3 ?;|$R SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
s:R>uGYOd :I F&W=?9 RegCloseKey(hResult);
1
xiq]~H I\Y/*u //修改注册表相应的值并释放键句柄
sG0cN;I]t 9
o-T#~i }
1F/`*z gUL`)t\} * ePIBg( 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。