自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
7!wc'~; ydA@@C\& VC修改注册表的方法与函数
p{:y?0pGN 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
CM%;/[WBxy 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
?J-\}X yL),G*[p\} 通过修改注册表实现IE换貌
QN|=/c<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()
/8!n7a7 sWB@'P:x {
([^#.x)hz :@a0h if(AddressNum==0){
[!MS1vc; 9dm<(I} AfxMessageBox("没有可应用的选项!");
={f8s,m)P, n_:EWm$\ return;
[4aw*M1z}. @4MQ021( }
1Wiz0X/ wS+!>Q_]w CString address;
kKjcW` [ iSUu3Yv,_m int sel=m_address1.GetCurSel();
Y]5spqG 5W$Jxuyqj if(LB_ERR ==sel){
h-RhmQA=Iz Sk)lT^by AfxMessageBox("请先选中要应用的选项!");
{> 8?6m- R$66F>Jz^ return;
xR8.1T?8 c{ +bY.J }
D_1O4/ Ji:<eRx) m_address1.GetText(sel,address);
^do6?e`?- >#'?}@FWQN //取得所需加入的网址字符串
^b}Wl0Fn C/H;|3.X CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
-Sn'${2 LAY:R{vI HKEY hResult;
_*n
`*" fms(_Q:R? RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
cA|vH^: sOiM/}O] //得到欲修改键的句柄
e /1x/v' +95v=[t#Ut SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
bC~I}^i\ 5pC}ZgEa< RegCloseKey(hResult);
t`{T:Tjc 1e7I2g //修改注册表相应的值并释放键句柄
ekU%^R< BFg&@7.X }
3Pgokj
#HW<@E 2.给工具条指定用户特定的背景图案
vU5}E\Ny (CgvI*O void CJhfDlg::OnAddBackGround()
VumM`SH k#u)+e.' {
}S3 oX$ hvQXYo>TZx if(PictureNum==0){
%4Qs|CM)m {qbe
ye! AfxMessageBox("没有可应用的选项!");
6y1\ar(A yTh%[k return;
(x?Tjyzw "a}fwg9Y }
z6rT<~xZtu PHEQG]H S CString picture;
kU=U u> ^Il*`&+?P int sel=m_PicList.GetCurSel();
`CC=?E p\F%Nj, if(LB_ERR ==sel){
p!=O>b_f 8D,*_p AfxMessageBox("请先选中要应用的选项!");
D4{KU%Xp& -u4")V> return;
+4Pes {7c'%e }
#^Pab^Y3r- #p55/54ZI m_PicList.GetText(sel,picture);
iU37LODa2T yjMN>L' //取得所需加入背景图案文件路径
deVnAu = kd\Hj~* CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
l'aCpzf w=n(2M56C HKEY hResult;
4#7*B yvf QIlZZ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
"}`)s_rt S4[#[w`= //得到欲修改键的句柄
EwU)(UK k.K#i /t SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
P\<:.8@$S I[v`)T'_{ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
t89Tt @cf a!-J=\>9 RegCloseKey(hResult);
noL9@It0 s.Bb@Jq //修改注册表相应的值并释放键句柄
f,Dic%$q X(X[v] RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
#0Y_!'j %Nvw`H //得到欲修改键的句柄
kltW
*o4a<.hd2 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
Uc'}y!R fByf~iv, SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
EY<"B2_% m8b,_1 RegCloseKey(hResult);
{7@*cBqN s</qT6@ //修改注册表相应的值并释放键句柄
6h,!;`8O d[J_iD{ & }
^r(My} D9A%8[Yo jVQ89vf
~ 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。