自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
te2
Iu%5 z -WT3)On VC修改注册表的方法与函数
Qm);6X
注册表是由树干和键组成的,对注册表的修改便是对键的修改。
C;sgK 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
YlUpASW S]yvMj_? 通过修改注册表实现IE换貌
#Mi|IwL 我们都知道,在注册表中,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()
^&:'NR O2H/rFx4 {
c)1=U_6 1 MtG_9- if(AddressNum==0){
+(ny|r[# p~bkf> AfxMessageBox("没有可应用的选项!");
3B,QJ& o?!uX|Fy return;
0MpS4tW0= KZK,w#9. }
s[-]cHQ ]A!.9Ko}u CString address;
hmGdjw t$ <7gMl int sel=m_address1.GetCurSel();
[(cL/_ ,z66bnjO if(LB_ERR ==sel){
(G5xkygR9 m,NMTyJoz AfxMessageBox("请先选中要应用的选项!");
Mj~${vj `45d"B
I return;
POBpJg _
+KmNfR }
RWahsJTu B/Ba5z"r$ m_address1.GetText(sel,address);
#Si|! qWB%),`j> //取得所需加入的网址字符串
q 22/_nSC %}F"*. CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
zPQ$\$7xB W#45a.v HKEY hResult;
6`"ZsO 4!2SS RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
*o|p)lH sfC@*Y2XT //得到欲修改键的句柄
;Prg'R[o; 2k3 z'RLG SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
FR' b`Xv: s,
-*q} RegCloseKey(hResult);
EVSK8T, |!5@xs*T //修改注册表相应的值并释放键句柄
4qBY%1 Ai jUs*n 2 }
aL$j/SC B*Cb6'Q 2.给工具条指定用户特定的背景图案
4sd-zl$Of U$$3'n void CJhfDlg::OnAddBackGround()
8DT@h8tA U]j&cFbn5_ {
u<q)SQ1 jf7pl8gv if(PictureNum==0){
Vw?P.4 Ty}R^cy{d AfxMessageBox("没有可应用的选项!");
;@'0T4Z&l WH;xq^ return;
<tQXK; 0nT%Slbih }
TA9dkYlE/ YUS?]~XC7x CString picture;
165WO}(;/ 2HVCXegq int sel=m_PicList.GetCurSel();
|lHFo{8" KF4see;; if(LB_ERR ==sel){
9!S^^;PN& Deog4Ol"/ AfxMessageBox("请先选中要应用的选项!");
d5q4'6o, ;;6\q!7` return;
5{fwlA :b,o B==% }
;y,NC2Xj Qasr:p+ m_PicList.GetText(sel,picture);
ujNt(7Cz vF+YgQ1H //取得所需加入背景图案文件路径
t*rp3BIG aKD;1|) CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
^s.oZj
q ec`>KuY HKEY hResult;
8ipW3~-4 z,os
MS RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
9`,,%vdj 2:n|x5\H //得到欲修改键的句柄
,FS?"Ni T*p|'Q` SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
e)br`CD% PgqECd)f SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
|/2LWc? (S 3jZ RegCloseKey(hResult);
Xv]*;Bq:SK hX %s]" //修改注册表相应的值并释放键句柄
TR|;,A[%v# ZG!x$yi$ RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
R$v i!0 _=)!xnYf //得到欲修改键的句柄
;,FT&|3o O<Jwaap SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
i$g|?g~] Mf#2.TR SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
a'm!M:w Age-AJ RegCloseKey(hResult);
- =yTAx DwT i_8m; //修改注册表相应的值并释放键句柄
\v.HG]
/u _82<|NN: }
D@2Ya/c ^CO#QnB @ ?TRW"% 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。