自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
<E@7CG.= H'I|tPs VC修改注册表的方法与函数
CV4V_G 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
U^Z[6u 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
0s0[U Xkl^!, 通过修改注册表实现IE换貌
4PiN Q'* 我们都知道,在注册表中,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()
XoSjYG(>, p"H8;fPA0 {
0P/A O(
he if(AddressNum==0){
~B(]0: YO!,m<b^u AfxMessageBox("没有可应用的选项!");
=
k3O4gE7 U`6QD}c"s return;
Dr`\ }(E6:h;}~ }
NJUYeim; dGIu0\J\$ CString address;
<zZAVGb4I CX':nai int sel=m_address1.GetCurSel();
LEhku4U. PR|Trnd&D if(LB_ERR ==sel){
Z55,S=i lha)' AfxMessageBox("请先选中要应用的选项!");
Ef,@}S '0
(Bb return;
_$ixE~w-! *,
*"G? }
FZ=6x}QZ cYR6+PKua m_address1.GetText(sel,address);
`8FC&%X_ ]Jnf.3 //取得所需加入的网址字符串
.?I!/;=[ iZMsN*9[ CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
#-'}r}1ZT k|A!5A2 HKEY hResult;
]Vb#(2<2 =V5.c+ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
V2 VsJ h!K
B%4V //得到欲修改键的句柄
}0 <x4|= sTG+c E SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
2zFdKs, Qmn5umd=?\ RegCloseKey(hResult);
WP]<\_r2 l7s=b4}c //修改注册表相应的值并释放键句柄
k 5 "3* Ka_UVKwMro }
T@yH.4D ;g*X.d 2.给工具条指定用户特定的背景图案
VdeK~#k $#RD3#=?u void CJhfDlg::OnAddBackGround()
~Y'e1w$` m6;Xo}^w {
~|uCZ.;o w|L~+
if(PictureNum==0){
/#:RYM'Tu ?G?=,tV AfxMessageBox("没有可应用的选项!");
2M&4]d K6Gc)jp:b return;
,6M-xSDs A^K,[8VX }
M%B[>pONb7 'oT}jI CString picture;
SAH\'v0 h.?[1hT4R int sel=m_PicList.GetCurSel();
"L8V!M_e awkVjyq X if(LB_ERR ==sel){
\Flq8S /t^ Y43#]; AfxMessageBox("请先选中要应用的选项!");
Ra{B8)Q COHJJONR return;
dlT\VWMha( c hd${
j }
"^XN"SUw Q}=RG//0* m_PicList.GetText(sel,picture);
$AXz/fGV Q?"[zX1 //取得所需加入背景图案文件路径
QIV<!SO p9s~WD/K CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
hf?^#=k^ ;! 9_5Ar% HKEY hResult;
!8L
Ql} L}21[ N~ky RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
KPR{5 *z+\yfOO" //得到欲修改键的句柄
6pLwwZD :mJM=FeJ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
$U8ap4EXM j2P|cBXu SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
`+f\Q2]Z _yoG<qI RegCloseKey(hResult);
aDOH3Ri0K! 1|nB\xgu //修改注册表相应的值并释放键句柄
E{fnh50^Q. O,>&w5 RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
ks r5P~ X*JD //得到欲修改键的句柄
Hug{9Hr3. A N%.LK SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
2ga}d5lu RyhR# SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
; Q 6:# N|~&Q!A& RegCloseKey(hResult);
k9n <Z__Q //修改注册表相应的值并释放键句柄
rL
s6MY B_&PK7vA }
41zeN++ ZbrE m j |i6/Pk9J 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。