自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
k deJB- b%pLjvU VC修改注册表的方法与函数
EP{y?+E2 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
0R*!o\y 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
1k
"*@Z< ukhI'alS, 通过修改注册表实现IE换貌
KqB(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()
Ee4oTU5Mb ~sk 4v:- {
'm-s8]-W Vwl`A3Y if(AddressNum==0){
bC"#.e u QCQ$ AfxMessageBox("没有可应用的选项!");
;:'A{&0N PBkKn3P3 return;
'p{>zQ\5 3D%I=p( }
H?O* X;zy1ZH CString address;
"y5c)l(Rg MbjH\XRB int sel=m_address1.GetCurSel();
j>P>MdZtk /SP^fB*y if(LB_ERR ==sel){
B;_M52-B 5a4;d+ AfxMessageBox("请先选中要应用的选项!");
et)A$'Q C;STJrew return;
`)K1[& ?$8OVq.w, }
_`ot||J ?l
bK;Kv m_address1.GetText(sel,address);
r=s2wjk &e2") 4oh //取得所需加入的网址字符串
1oodw!hW _H@S(!
CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
uvZ|6cM Jf4D">h HKEY hResult;
`"/@LUso >'E'Mp. RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
Fe`$mtPu. / 1E6U6 //得到欲修改键的句柄
rN_\tulOF =j}]-! SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
C#vU'RNpl 3kQky RegCloseKey(hResult);
,9 }J"}poB: //修改注册表相应的值并释放键句柄
NcFHvK ]6FpUF#<D }
bIwt#:v P(qUx9 2.给工具条指定用户特定的背景图案
LXfDXXF u9sffX5x[J void CJhfDlg::OnAddBackGround()
o'r?^ *W -*+7-9A I {
lHr?sMt /ey}#SHm, if(PictureNum==0){
8 w^i ;/
WtO2 AfxMessageBox("没有可应用的选项!");
o{nBtxZ" 62a{Ggs{ return;
iv:[]o B-'Xk{ }
57rc|]C 2;U(r:] CString picture;
_ jF,
k>F YDdmT7Ow int sel=m_PicList.GetCurSel();
m[(2 _q+H>1.&9 if(LB_ERR ==sel){
~B|K]&/] m03;'Nj'7# AfxMessageBox("请先选中要应用的选项!");
AfFFu\ :J}L| `U9 return;
D+#QQH sDw&U?gUv }
1kvBQ1+ O-5H7Kd- m_PicList.GetText(sel,picture);
[y64%|m d#Ql>PrY //取得所需加入背景图案文件路径
,7z.%g3+z bp;b;f> CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
eBBqF!WDb mp>,TOi~s7 HKEY hResult;
E<D45C{DP 3|l+&LF!IC RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
T"XZ[q $x#Y\dpS //得到欲修改键的句柄
`a98+x?JF Ryr2 SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
b-yfBO wHAoO#`wn5 SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
kk
)9!7 ~bg?V0 RegCloseKey(hResult);
M7BJ$fA0E Nz\=M|@(# //修改注册表相应的值并释放键句柄
<jY"+@rF 0a ZplE, RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
ggXg4~WL %9uLxC; //得到欲修改键的句柄
}&bO;o&> z~UqA1r SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
cxp>4[gH Mx4
<F "9 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
4&&((H
6"/cz~h RegCloseKey(hResult);
n2Q~fx<6% CcG{+-=H) //修改注册表相应的值并释放键句柄
v&(PM{3o 71Q-_Hi }
DUFfk6#X} ~bf-uHx =hjff/
X 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。