自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
\t{iyUxY N\|B06X VC修改注册表的方法与函数
R0M>'V?e 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
O!PGZuF 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
U" @5R[=F- pIIp61=$ 通过修改注册表实现IE换貌
zDg*ds\ 我们都知道,在注册表中,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()
gd[muR ~ WjBml'^RY {
U/c+j{=~ Iq|h1ie
m+ if(AddressNum==0){
HX.K{!5 Cq@7oi]W0 AfxMessageBox("没有可应用的选项!");
03?ADjO a,rXG return;
\m`IgP* ErN[maix# }
(R=ZI #h ud_ CString address;
I/'>MDB! !fs ~ > int sel=m_address1.GetCurSel();
%g*nd#wG K-YxZAf if(LB_ERR ==sel){
9#H0|zL E[hSL#0 AfxMessageBox("请先选中要应用的选项!");
/A5=L<T6F czw:xG!& return;
(,"%fc7<i Q3=X#FQ }
D~inR3(} ~N/%R>(v m_address1.GetText(sel,address);
oVqx)@$K ?Gf'G{^} //取得所需加入的网址字符串
K*^'tltJ hgZvti CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
wgDAb#Zuk 9X[378f+( HKEY hResult;
lf\"6VIsR <F`9;WX RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
H F*~bL )fXxkOd //得到欲修改键的句柄
iMry0z |
{zka.sJ
SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
nUY)LnI ]V fp,"op RegCloseKey(hResult);
ym
p*:lH( Bl)D/ //修改注册表相应的值并释放键句柄
'>OEQU5- ~m R^j }
uP7|#>1% 2C0j.Ib 2.给工具条指定用户特定的背景图案
2SC'Z>A D _\HX9 void CJhfDlg::OnAddBackGround()
SdufI_'B AU*]D@H {
daY0;,> M|y!,/' if(PictureNum==0){
G>Bgw>#_ //G&=i$ AfxMessageBox("没有可应用的选项!");
FpttH?^ 6
y"r' return;
h*4wi.- "%
i1zQo& }
$sL+k 'dY 3b?-83a CString picture;
>$<Q:o}^ <-d-.
8 int sel=m_PicList.GetCurSel();
NgGpLdaC2v r& RJ'z if(LB_ERR ==sel){
`,
|l 823y; AfxMessageBox("请先选中要应用的选项!");
)`=N+k] Q2|6W E return;
@8YuMD; 9(&$Gwi }
,g P;XRe1 .>`7d=KT m_PicList.GetText(sel,picture);
EZ Q!~ q9(O=7O]- //取得所需加入背景图案文件路径
E?0RR' s5b<KQ. CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
?#5)TAW 2}{[J HKEY hResult;
}k1[Fc| B^1jd!m RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
_qit$#wK; { F0"U= //得到欲修改键的句柄
<^Q`
y EU5(s*A SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
$YBH;^# ieyqp~+|4$ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
^J?2[( KE)^S
[Da RegCloseKey(hResult);
j{5oXW XF4NRs //修改注册表相应的值并释放键句柄
RvW>kATb_F I7ySm12} RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
Erl@]P4 or`"{wop //得到欲修改键的句柄
L'BzefU;04 TI'~K}Te SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
$EG<LmC-Q _i"[m(ABj1 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
KbRKPA` v^IMN3^W RegCloseKey(hResult);
(+\K 4_eFc$^ //修改注册表相应的值并释放键句柄
=2wy;@f x(zW<J5X" }
3'Z+PPd!
U&tR1v' /Hc0~D4|x 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。