自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
.jRv8x b Q&?B^[N*Q VC修改注册表的方法与函数
GlaZZ, 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
jN2Xoh9 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
(eO_]<wmky q4ej7T8 通过修改注册表实现IE换貌
@{x+ln1r 我们都知道,在注册表中,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()
;Yn_*M/* P!~B07y {
u|\K kk @1)C3(=A if(AddressNum==0){
M,bcTa8 8 Tm/gzx AfxMessageBox("没有可应用的选项!");
mcSZ1d~,( l u V_ return;
FSS~E [(DL Y~I6ee,\ }
=8x-+u5}rK P%Wl`NA P CString address;
t}Kzh` "
{Nw K int sel=m_address1.GetCurSel();
S{qn^\0 K${CHKFf if(LB_ERR ==sel){
u
%&4[zb
~,reS:9RZ AfxMessageBox("请先选中要应用的选项!");
@wW)#!Mou I}1<epd , return;
}3y Q*< e}q!m(K]e- }
,\E5et4 j%E9@# m_address1.GetText(sel,address);
(r$QQO)/ W^dRA xVX //取得所需加入的网址字符串
T( sEk _ +A$6l CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
K@;ls q<?r5H5 HKEY hResult;
T!gq
Z ^HNccr RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
d15E$?ZLH BG2Z'WOH //得到欲修改键的句柄
v*EErQML8b _@ @"' SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
KS(Ms*k;' Zj2tQ}N RegCloseKey(hResult);
4L[-[{2 v@
OM //修改注册表相应的值并释放键句柄
9NcC.}#-5 Lcy>!3q3~ }
>)S'`e4Gu wfc+E9E 2.给工具条指定用户特定的背景图案
Ix'GP7-m_ }J\KnaKo void CJhfDlg::OnAddBackGround()
LQ=Fck~[r "=XRonQZ {
-xc'P,` 6Pu5 k;H if(PictureNum==0){
nv"D ?c#v'c^=h AfxMessageBox("没有可应用的选项!");
sK`pV8&xq b:(*C return;
Cr%6c3aQ Nyo,6 AA }
8??%H7~ qGc>+!y CString picture;
MA5BTq<& ?3Dsz int sel=m_PicList.GetCurSel();
A49HYX-l }-ysP$ if(LB_ERR ==sel){
j8#B >l|dLyiae AfxMessageBox("请先选中要应用的选项!");
K>fY9`Whm @ei:/~y3 return;
gSu3\keF IDr$Vu4LCW }
E[E[Za^Y RVb}R<yU+ m_PicList.GetText(sel,picture);
pM'AhzS 'Z(4Wuwb //取得所需加入背景图案文件路径
gEQevy`T%c 7U {g'< CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
YC0FXN V kVb8 $Sp HKEY hResult;
OM
5h>\9 dsJHhsu6 RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
{BKr/) H rC!~4xj- //得到欲修改键的句柄
XDi[Iyj K# dV. SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
Nm]\0m0p-
7lz"^ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
)51H\o m]NyEMYg RegCloseKey(hResult);
RW.
>;|m mf)o1O&B //修改注册表相应的值并释放键句柄
`[5QouPV 7T3ub3\ RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
+#! !
'XP 5=--+8[ bV //得到欲修改键的句柄
+k4SN h&6v&%S/L SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
*m[ow s <C9_5Ce~ SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
?=h{`Ci^ $ i@M^9|Gh RegCloseKey(hResult);
ndIU0kq3 ;eRYgC //修改注册表相应的值并释放键句柄
"*E%?MG Y SE6PG }
`?ijKZ}y5 U:. X4R+Frt8 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。