自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
RTF{<,E.UX ?86h:9 VC修改注册表的方法与函数
Bg7?1m 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
<J`_Qc8C 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
{"4t`dM gxt2Mq;q~} 通过修改注册表实现IE换貌
SHz& o[u 我们都知道,在注册表中,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()
eb.`Q+Gb :gQc@)jZ(* {
kl2]#G( TpMfk7- if(AddressNum==0){
?e&CbVc4 '90B),c{ AfxMessageBox("没有可应用的选项!");
/Tv<
l yu}4L'e return;
,{zvGZ| ?9=yo5M} }
?6uh^Qal oqE h_[. CString address;
P+"#xH F(SeD)ml int sel=m_address1.GetCurSel();
vs6`oW"{# /Rt/Efu if(LB_ERR ==sel){
%y8w9aGt Jz3 q
Pr AfxMessageBox("请先选中要应用的选项!");
QHtpCNTVb
-pX/Tt6 return;
xB9^DURr\ 7g(rJGjtg }
Hi.JL >@]E1Qfe m_address1.GetText(sel,address);
;'p0"\SV P=u )Q _ //取得所需加入的网址字符串
nc$?tC9V |L]dJ< CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
lzuPE,h |fRajuA; HKEY hResult;
;&:UxmTf !kmo%+ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
rZ0@GA zxwpS //得到欲修改键的句柄
A3 j>R477A ]G|@F
: SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
fI"`[cA"] CGv(dE,G&] RegCloseKey(hResult);
[nG/>Z]W iW |]-Ba\ //修改注册表相应的值并释放键句柄
Az0Yt31= rEddX }
-AcQ_dS @6t3Us~/ 2.给工具条指定用户特定的背景图案
Zsf<)Vx /B}]{bcp$ void CJhfDlg::OnAddBackGround()
Fb-NG.Z# LM*9b {
CR,
Y%0vQ z!RA=]3h if(PictureNum==0){
Z39^nGO >1joCG~ AfxMessageBox("没有可应用的选项!");
3zh'5qQ kTFN.kQx@ return;
uP+
j_is `o:)PTQNg }
uiiA)j*! " I _T CString picture;
#uey1I@"9 &,KxtlR![ int sel=m_PicList.GetCurSel();
urtcSq&H' CWC*bkd5a if(LB_ERR ==sel){
< u^41 U?>zq!C&R AfxMessageBox("请先选中要应用的选项!");
)Hev-C" >n` OLHg; return;
[a+?z6qI\} j-A
S {w }
YK}(VF?& Qt@~y'O m_PicList.GetText(sel,picture);
tgrQ$Yjk lXB_HDY //取得所需加入背景图案文件路径
Tri.>@-u EH,uX{`e CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
/~AwX8X IM
+Dm HKEY hResult;
<GoE2a4Va n.7 $*9)# RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
QjQJ " {]Lc]4J //得到欲修改键的句柄
&4{%3 w_/ .|iUDp6vz SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
4J I;NN
;$|+H"g| SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
-u8@ . ngdVRJL RegCloseKey(hResult);
qqkZbsN 9Ft)VX //修改注册表相应的值并释放键句柄
59EAqz[: *[vf47)r! RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
oh:t ex< z<AQ;b //得到欲修改键的句柄
xRaYm v`v+M4upC SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
?]P&3UU>0z {/ty{ SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
Zr$PSp} _$fxo D9 RegCloseKey(hResult);
E6@+w. VVO _IgG8)k; //修改注册表相应的值并释放键句柄
"%}PVO! I7[+:?2 }
ly^F?.e- yGN<.IP75 "CZ`hx1|^ 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。