自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
"s6\l~+9l -k+}w_<Q VC修改注册表的方法与函数
Ul/Uk n$ 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
a@ub%laL
Z 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
P`HDQ/^O
1dl@2CVS 通过修改注册表实现IE换貌
;ye5HlH}. 我们都知道,在注册表中,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()
{Y(# <UDM Q8~|0X\.g {
%:DH_0 S%sD#0l if(AddressNum==0){
E;m-^dxc Ow@}6&1 AfxMessageBox("没有可应用的选项!");
/jtU<uX '&OJ hLE return;
rZK;=\Ot uE]kv }
t@Bl3Nt{ bS!4vc1`2 CString address;
)5O E~}> @rV|7%u int sel=m_address1.GetCurSel();
SdJGhU 5xs GSoa+ if(LB_ERR ==sel){
W{1" v95O)cC:W AfxMessageBox("请先选中要应用的选项!");
UrP jZ:K' LO&/U4: return;
VsrYU@V l, [cR?v }
}+F&=-P) s9p~ m_address1.GetText(sel,address);
BKfkB[*F mbS`+)1=l //取得所需加入的网址字符串
p /x] JJ+A+sfdk CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
y;r{0lTB ptlcG9d- HKEY hResult;
\D<w:\P .EXe3!J)! RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
:|V`QM V?0Yzg$sy //得到欲修改键的句柄
]nM 2J}7 Wt ,t5 SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
#AN]mH jk\04k RegCloseKey(hResult);
:Nt_LsH \mIm}+!H //修改注册表相应的值并释放键句柄
X;vfbF ~:ldGfb| }
a*g7uaoP {j!jm5 2.给工具条指定用户特定的背景图案
?e. Ge0& 1>pFUf|cV void CJhfDlg::OnAddBackGround()
43HZ)3!me 8F;f&&L"y {
yG ,oSp| b;O@|HK&~ if(PictureNum==0){
x&N!SU6 CU7WK}2h2C AfxMessageBox("没有可应用的选项!");
_^(}6o ,+Bp>=pvs return;
!SxZN d v Cr a@ }
\d&/,?,Ey "7.
lsL5 CString picture;
z5k9|.hgw iem@K int sel=m_PicList.GetCurSel();
0]._|Ubn6) fEMz%CwH if(LB_ERR ==sel){
?cH,!2
H({Y AfxMessageBox("请先选中要应用的选项!");
z/Kjz$l! l?rT_uO 4 return;
dZ"B6L!^( nB+UxU@ }
5J1q]^ M;$LB@h m_PicList.GetText(sel,picture);
(3[Lz+W.u Z{".(?+}1 //取得所需加入背景图案文件路径
?L'4*S] V|njgcn d CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
iL ](w3EM @#?w>38y HKEY hResult;
J: T |
WN9& RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
=/6rX"\P nbhzLUK //得到欲修改键的句柄
1/l;4~p7' {Iu9%uR>@ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
jb5nL`(j$ KXtc4wra SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
`PH*tdYrh iax6o+OG| RegCloseKey(hResult);
F\H^=P r'GD //修改注册表相应的值并释放键句柄
{ yvKUTq` 3SU:Xd(\o RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
yOQEF\ \dG#hH4ZD //得到欲修改键的句柄
@[vwqPOL u]Eyb),Gy SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
O6Gg?j mH/$_x)o SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
`~.0PnHf @|1/yQgi RegCloseKey(hResult);
*
I{)8 )HFl 0[vT //修改注册表相应的值并释放键句柄
TfFuHzZZ {TWgR2?{C }
R=/6bR57 L
2Z9g`> 3H'+7[~qH 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。