自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
7'Gkip Fil6;R VC修改注册表的方法与函数
nhRpb9f`1@ 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
}ZJJqJ`*e 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
.p(%gmOp# ~8U 0(n:^ 通过修改注册表实现IE换貌
pyp0SGCM: 我们都知道,在注册表中,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()
q_Z6s5O Z6 E_Y? {
kY{;(b3Q KO[,C[;|j if(AddressNum==0){
mX[J15 ;e$YM;;d AfxMessageBox("没有可应用的选项!");
3,1HD_ vGwpDu\RgX return;
+ P<#6<gR 8~AL+*hn }
!
=*k+gpF :M8y
2fh CString address;
{43J'WsJ 3EH7HW int sel=m_address1.GetCurSel();
RO[6PlrRN A=r8_.@2@ if(LB_ERR ==sel){
;cGY
>1$Vh=\OI AfxMessageBox("请先选中要应用的选项!");
'cA(-ghY/E PQP|V>g return;
KpT=twcK rp=Y } }
w%- S5# h!?rk| m_address1.GetText(sel,address);
r9n:[A&HE -Eoq#ULvR //取得所需加入的网址字符串
L| ;WE= otlv;3263 CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
R# ZO<g%' gv,1 CK HKEY hResult;
u>/Jb+ +0)H~
qB\ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
ijgm-1ECk3 5]zH!>-F //得到欲修改键的句柄
p#
|}
o9 d;i@9+ SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
& l0LW,Bx $hy0U_}6 RegCloseKey(hResult);
b8!
+v<
\l= //修改注册表相应的值并释放键句柄
Z=oGyA vbfQy2q }
Z1{>"o:@ o{3>n"\w3 2.给工具条指定用户特定的背景图案
0wt4C% .0 a|z@5r% void CJhfDlg::OnAddBackGround()
mDO! o 'xGTaKlm, {
"O~kIT?/v -t: U4r( if(PictureNum==0){
"[0.a\ d< C8D`:k
AfxMessageBox("没有可应用的选项!");
SGu`vN] .-)kIFMi return;
iXL?ic xNjWo*y v }
/@U bN\ |,tKw4 CString picture;
}s[`T HSVl$66 int sel=m_PicList.GetCurSel();
QOY{j ~_
u3_d. if(LB_ERR ==sel){
\2CEEs' k"6&& AfxMessageBox("请先选中要应用的选项!");
R?M>uaxn L_o/fTz4 return;
=MT'e,T XSGBC:U)l }
TX;)}\ i8S=uJ]n m_PicList.GetText(sel,picture);
,&L}^ Up y9.?5#aL //取得所需加入背景图案文件路径
a'A<'(yv D@kf^1G CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
;=WwJ Np~ '4CD
} HKEY hResult;
KDb`g}1Q 0{ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
3-'3w , Jhfw$ DF //得到欲修改键的句柄
E6z&pM8<8 .y lvJ$ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
[s{[
.0P]+ 'V&Tlw| SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
/fdrf zO@>)@~ RegCloseKey(hResult);
RT${7= ~/XDA:nfL: //修改注册表相应的值并释放键句柄
XlnSh<e ]B$J8.{q0 RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
a ," RhC|x,E //得到欲修改键的句柄
`3`.usw 8H|ac[hXK2 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
`YqXF=- `jVRabZ0 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
.R
l7,1\ Pm,.[5uc RegCloseKey(hResult);
x2'pl
(^ 4-I7"pW5 //修改注册表相应的值并释放键句柄
".2d{B *f_A:`: }
N,l"9>CF M8/:PmR< XUnw*3tPJ 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。