自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
^fkCyE;= hZ!oRWIU%G VC修改注册表的方法与函数
@(Z( /P;: 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
6dF$?I& 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
D~Z=0yD [!^cd%l 通过修改注册表实现IE换貌
ows^W8-w 我们都知道,在注册表中,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()
'4$lL6ly> R"NGJu9 {
>OT\~C LRWOBD if(AddressNum==0){
5!<o-{J[(= #-,g&)`] AfxMessageBox("没有可应用的选项!");
%>i@F=O2< zCBplb return;
>W'j9+Va GOGt?iw*< }
>&BrCu[u !~kEtC CString address;
?RDO] I> Ru:n~77{ int sel=m_address1.GetCurSel();
KL
"Y!PN: 1:_=g #WH if(LB_ERR ==sel){
USprsaj FS8S68 AfxMessageBox("请先选中要应用的选项!");
6{Ks`Af +Z > < return;
+i+tp8T+7 k,T_e6( }
|H:<:*=6c 9GThyY m_address1.GetText(sel,address);
(s088O w}d}hI //取得所需加入的网址字符串
PQ,+hq 2sUbiDe- CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
)i @1XH"D &RWM<6JP HKEY hResult;
KCD5*xH D%A@lMru RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
P 4QkY#v lDC}HC //得到欲修改键的句柄
L%f;J/ 9<v}LeX SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
3EmcYC ~Yl<S(/4 RegCloseKey(hResult);
h`lmC]X_ QTYYghz //修改注册表相应的值并释放键句柄
lj*8mS/;h `
VwN!B: }
b"t")U== v`SY6;<2 2.给工具条指定用户特定的背景图案
&
N;pH c#
xO< void CJhfDlg::OnAddBackGround()
|#V(p^ t=i/xG: 5 {
l~['[Ub0) ywEDy|Wn$~ if(PictureNum==0){
izf~w^/ 0Z,{s158L AfxMessageBox("没有可应用的选项!");
x<s|vgl| odpUM@OAW return;
}%x}fu# [fxuUmU }
ESIzGaM 0I
@$ 0Gg CString picture;
"5}%"-# GmbIFOT~
int sel=m_PicList.GetCurSel();
-;>#3O- um[!|g/ if(LB_ERR ==sel){
.H2qs{N! sB6dpD AfxMessageBox("请先选中要应用的选项!");
Y\p$SN h@@d{{IqT return;
On&L#pf /$:U$JVb?l }
k2p'G')H % $TEDr! m_PicList.GetText(sel,picture);
> :Ze4}( ?/'}JS(Sm //取得所需加入背景图案文件路径
%iJ|H(P _!!}'fMC CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
~@Kf2dHes [(|v`qMv/g HKEY hResult;
],[)uTZc Obo _YE RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
94{)"w] s4$X //得到欲修改键的句柄
V7C1FV2 /K|:9Q$K6 SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
EgNH8i :<GfET Is SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
?4G(N=/& [bjN
f2 RegCloseKey(hResult);
RtC'v";6 U-EhPAB@ //修改注册表相应的值并释放键句柄
((|IS[ @B`Md3$7 RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
K\&o2lo] =& -[TPW //得到欲修改键的句柄
5/MED}9C( _ 08];M| SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
jPk
c3dG
+ DMZ`Sx SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
IgM
v =^U >]&X ^V%Q# RegCloseKey(hResult);
ll<mE, /\E [ //修改注册表相应的值并释放键句柄
>"("*3AO ?`AGF%zp
}
#$'FSy# Yc`<S jN/ j\x' 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。