自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
qyP@[8eH TsfOod VC修改注册表的方法与函数
.NiPaUzc< 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
z X2BJ 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
O)Nj'Hcu zX{[Z 通过修改注册表实现IE换貌
\2L%%M 我们都知道,在注册表中,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()
{h7*a= 600-e;p {
x5c
pv ])7t!< if(AddressNum==0){
[`6|~E"F k8GcHqNHx AfxMessageBox("没有可应用的选项!");
:@`Ll;G z<m,Xj4w return;
f:KKOLm =xS(Er`r }
n^UrHHOL iKv{)5 CString address;
05TZ 1WfN_JKB5 int sel=m_address1.GetCurSel();
Y6?d
y\ <fJoHS if(LB_ERR ==sel){
6HCP1`gg q\x*@KQgM AfxMessageBox("请先选中要应用的选项!");
HZ>Xm6DnC5 I8Y[d$z return;
V2u^sy Y(m/E.h.~ }
Y@Lv>p BikmAa m_address1.GetText(sel,address);
6*A
S4l "c\ZUx_i6 //取得所需加入的网址字符串
|FS79Bv OU]!2[7c CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
so9h6K{qcp W&;X+XA_W HKEY hResult;
S_y!4;]ox 3G~ T_J& RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
#6 e `|8)A)ZVT //得到欲修改键的句柄
u#/Y<1gn %F3M\)jU SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
%A,4vLe~6 9mEC|(m*WK RegCloseKey(hResult);
|p4F^!9 4hg#7#?boW //修改注册表相应的值并释放键句柄
KA0Ui,q3 w[^s)1 }
1,p7Sl^h |>gya& 2.给工具条指定用户特定的背景图案
^+Ie #VgPg5k.< void CJhfDlg::OnAddBackGround()
Dr^#e CSN]k)\N( {
[;7&E{,C $A`D p{e" if(PictureNum==0){
Xjt/ G):L O'Lgb9 AfxMessageBox("没有可应用的选项!");
Q0Y0Zt,h wcspqC" _ return;
c*'D qSlC@@.> }
[>A%% fLa 7d?4 CString picture;
P5yS`v$@ <T>C}DGw int sel=m_PicList.GetCurSel();
V2W)%c' I0h/x5 if(LB_ERR ==sel){
XkHO = oP$NTy[ AfxMessageBox("请先选中要应用的选项!");
X2 c<. 9fp1*d return;
[[}KCND Du k v[/60 }
$z"3_4a vrXUS9i. m_PicList.GetText(sel,picture);
i(Cd#1< 02g}}{be8 //取得所需加入背景图案文件路径
4nmc(CHQ: g""1f%U_p CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
g)u
~GA*= iq)4/3"6 HKEY hResult;
UiqHUrx oyZ}JTl(Q RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
<5?.s<
y$" FX`SaY>D //得到欲修改键的句柄
h|$.`$ Kr3L~4> SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
YDE;mIW M.O3QKU4 SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
IGeXj%e f7c%Z:C#Y RegCloseKey(hResult);
cY
^>` paF$o6\ //修改注册表相应的值并释放键句柄
2 1.;lj w[~O@:`]<o RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
HP}d`C5<R Nih8(pbe //得到欲修改键的句柄
;HtHN
K(o jc)[5i0 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
DF|(CQs9 -.~Dhk SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
x9)^0Hbo Lt$LXE RegCloseKey(hResult);
P!q!+g |j($2. //修改注册表相应的值并释放键句柄
}SIUsh' h W\q }
@iWql*K;m 8Ux3,X= 4,"% 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。