自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
taD T;t OyG_thX VC修改注册表的方法与函数
cx1WGbZ 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
D x>1y 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
sJjl)Qs)T ECE{xoc 通过修改注册表实现IE换貌
mPw56> 我们都知道,在注册表中,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()
6qHvq
A, 8h@)9Q]d\ {
l/y
Kc8^< 4%#V^??E if(AddressNum==0){
9$4/frd dl3LDB AfxMessageBox("没有可应用的选项!");
/!&b'7y edImrm1f return;
99+/W*C !lt\2Ae }
`|ck5DZT5L 6S+K*/w CString address;
yEw"8u' X'3`Q S:! int sel=m_address1.GetCurSel();
J*6n6 V.P5v{ if(LB_ERR ==sel){
R>YMGUH~w P*"AtZuY] AfxMessageBox("请先选中要应用的选项!");
&d|VH y+ EU&3Pdnd return;
,nu7r1} /Mi-lh^j- }
=J[[>H'<d GqK&'c m_address1.GetText(sel,address);
G,mH!lSm, ,N@Icl //取得所需加入的网址字符串
v[3hnLN% c|;|%"Mk CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
!Z0rTC3d Ymk4Cu.s HKEY hResult;
<>5:u .xc/2:m9 RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
1l`s1C #K,qF* //得到欲修改键的句柄
pb2{J# @D=2Er\ SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
Gad2EEZ%0 ^hYR5SX RegCloseKey(hResult);
YK=#$,6 65e
Wu=T //修改注册表相应的值并释放键句柄
;P0Y6v3 ?/|@ #& }
)(|0KarF lj SR?:\ 2.给工具条指定用户特定的背景图案
uI:3$ @)juP- o% void CJhfDlg::OnAddBackGround()
2Ws/0c
r1az=$ {
Cak/#1 "<n"A7e if(PictureNum==0){
/x8C70W^ *O}'2Ht6\ AfxMessageBox("没有可应用的选项!");
M]/wei"X V]S06>P return;
??e#E[bI Mpl,}Q!c }
]JCB^)tM @2Y]p.$q CString picture;
ZX5A%`<M 9{^B
Tc
int sel=m_PicList.GetCurSel();
.Zo9^0`C ~C*6V{Tj if(LB_ERR ==sel){
4U y>#IL $j4?'-i=e AfxMessageBox("请先选中要应用的选项!");
5SWX v+ CO)b'V, return;
ADl>~3b F~@1n,[ }
*~oDP@[S -Fw4;&> m_PicList.GetText(sel,picture);
nKa;FaJ Jm1AJ4mw //取得所需加入背景图案文件路径
Q,qylL O/r<VTOp CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
4.kkxQR7r Y;5^w=V HKEY hResult;
JA(q>>4 +?m=f}>W1 RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
5J2p^$s \iLd6Qo_aq //得到欲修改键的句柄
"YvBb:Z> GC#95 SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
S0QU@e &I'F-F; SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
z'}t@R#H :IKp7BS RegCloseKey(hResult);
89e.\EH ;\&bvGj8V //修改注册表相应的值并释放键句柄
Dlsa( e$+? v2. RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
n\)f.}YD8d zm S-s\$, //得到欲修改键的句柄
Mn{Rg>X j9fL0$+FI SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
3eDx@8N
} ?*5l}y= SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
/n}V7 uH;^>`DT RegCloseKey(hResult);
s?I=} #Q)w$WR //修改注册表相应的值并释放键句柄
M@z/gy^ |;1:$E" }
uRcuy/CY 7Qztc?XK LZbHK.G= 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。