自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
VK?,8Y }"xC1<] VC修改注册表的方法与函数
$fC= v 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
9B*SWWAj 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
Bxm^Arc> V
(X)Qu@R 通过修改注册表实现IE换貌
I{1w8m4O6 我们都知道,在注册表中,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()
?}lCS7& q)!{oi{x( {
/{qr~7k,oQ L:B&`,E if(AddressNum==0){
C{Npipd}v V?5_J% AfxMessageBox("没有可应用的选项!");
l"ih+%S dmE-WS return;
l<qxr.X ICV67(Ui }
YR[Ii? T8qG9)~3 CString address;
O'5(L9, ;%U`lE0 int sel=m_address1.GetCurSel();
ikm4Y`c ^. Pn)J if(LB_ERR ==sel){
X\YeO>C >xH3*0Lp AfxMessageBox("请先选中要应用的选项!");
F /t;y\) +%>L;'L
^X return;
R$w=+%F LY^BkH' }
Z/ThYbk VDQ&BmJE m_address1.GetText(sel,address);
tpCEWdn5 %*r Pd>* //取得所需加入的网址字符串
TYLf..i< s'5
jvlG CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
wePMBL1P* :!aFfb[" HKEY hResult;
&=s{ +0 %0"o(y+zt RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
(T`x-wTl =zbrXtp, //得到欲修改键的句柄
a_Xh(d$ /=-E`%R}! SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
T>LtN \W$>EH RegCloseKey(hResult);
|r3eq4$Am I@x*> //修改注册表相应的值并释放键句柄
_39b8s{ '3<YZWS }
Lp{l&-uQ 0 J ANj 2.给工具条指定用户特定的背景图案
[.6uw=;o EcP"GO5 void CJhfDlg::OnAddBackGround()
6:h!gY wdp4- * {
&Cdd s[Njk@y, if(PictureNum==0){
Ak4iG2 W]reQ&<Z AfxMessageBox("没有可应用的选项!");
zzPgLE55 2#|Q=rWB return;
$r_z""eOc I-+D+DhRx }
N!btj,vx U[Z1@2zLx CString picture;
WXGLo;+>I i%-c/ lop int sel=m_PicList.GetCurSel();
hp[8.Z$7 bD49$N?> if(LB_ERR ==sel){
|n* I}w^ ?K}/b[[0v AfxMessageBox("请先选中要应用的选项!");
vY.p~3q :) :a`l_RMU return;
Xf$,ra" N !H iQ }
v`nodI LoNz
1KJL m_PicList.GetText(sel,picture);
tohYwXN Hh;7 hY\ //取得所需加入背景图案文件路径
;2&(]1X Q%KS$nP9 CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
m-ZVl j :@kSDy+*Q HKEY hResult;
&4p:2,|r9 \}G/F! RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
5qUyOkI 8<IOX //得到欲修改键的句柄
`)K1[& .PxtcC.K SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
}JvyjE .}]5y4UQ. SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
N{oD1% C3WqUf<8`{ RegCloseKey(hResult);
lZE x0 WM*7p;t@) //修改注册表相应的值并释放键句柄
Ns&SZO %'@&j2j> RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
C\
9eR hb[K.`g //得到欲修改键的句柄
XCQ=`3f +*F ;l\R SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
bIwt#:v 265df
Y9Pu SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
u9sffX5x[J ;R|5sCb/m RegCloseKey(hResult);
mWCY%o@ *7DQ#bD //修改注册表相应的值并释放键句柄
\*a7DuVw &5c)qap;n }
iv:[]o O,XVA 2;U(r:] 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。