自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
@W<m4fi =wJX0A| VC修改注册表的方法与函数
K"6vXv4QO 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
iscz}E,Y 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
#Z #-Ht X2_=agEP 通过修改注册表实现IE换貌
}ZI7J 我们都知道,在注册表中,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()
s"|Pdc4 V#HuIgf- {
im8 CmQ B~mj 8l4 if(AddressNum==0){
:s,Z<^5a)g ~u{uZ(~ AfxMessageBox("没有可应用的选项!");
SM'|+ d 0K+ne0I return;
do_[& NbobliC= }
|)&%A%m GyIV
Hby CString address;
Xvv6~ =l6mL+C int sel=m_address1.GetCurSel();
#E?4E1bnB %>yL1BeA4 if(LB_ERR ==sel){
\+etCo
M:8R-c#![ AfxMessageBox("请先选中要应用的选项!");
`uFdwO'DD {ax:RUQxy return;
/z!%d%" }C:r9?T }
\bF{-" 7. H|*m$|$, m_address1.GetText(sel,address);
[
3Gf2_ 8}[).d160 //取得所需加入的网址字符串
XX@ZQcN T%Lx%Qn CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
.>S!ji Ba,`TJ%y HKEY hResult;
eRYK3W \RiP
RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
_-D{-Bu# uZ5p#M_ //得到欲修改键的句柄
+z( Lr=G w(/S?d
SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
AdEMa}u6
2iOV/=+ RegCloseKey(hResult);
Z r8*et 3mgD(,(^ //修改注册表相应的值并释放键句柄
>%G1"d?j @- xjfC\d }
]'}L 1r 'V {W-W< 2.给工具条指定用户特定的背景图案
QY/w zdYjF| void CJhfDlg::OnAddBackGround()
\<' ?8ri# DF= *_,2/ {
CY1Z' .3;;;K9a~] if(PictureNum==0){
uph(V *T/']t AfxMessageBox("没有可应用的选项!");
Wc#24:OKe3 +2{Lh7Ks return;
6t$8M[0-U khe}*y }
u[YGm:} L_T5nD^D CString picture;
)2.Si# UfGkTwoo= int sel=m_PicList.GetCurSel();
29KiuP XwmL.Gg:]7 if(LB_ERR ==sel){
[~HN<>L@C W4S,6( AfxMessageBox("请先选中要应用的选项!");
<YY 14p >Ry01G]_/h return;
*pq\MiD/ !zo{tI19 }
a9gLg
& CrLrw T m_PicList.GetText(sel,picture);
^sw?gH* EwN}l //取得所需加入背景图案文件路径
0S"MC9beg ~Y;*u]^ CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
#mF"1QW K-4PI+qQ\ HKEY hResult;
_b 0&!l<
6Oq7#3] RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
UNYqft4 #e"[^_C@! //得到欲修改键的句柄
"sTRS* )8AXm SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
I,tud!p` g#bRT*,L SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
^W^OfY @dKTx#gZ RegCloseKey(hResult);
7I}uZ/N Y]>t[Lo% //修改注册表相应的值并释放键句柄
hb$Ce'}N 7dWS RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
qPNR`%}Q R_C) //得到欲修改键的句柄
_f83-':W6 ^('wy}; SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
%EH)&k &~CI<\o P SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
];m_4 LV Ge]lD RegCloseKey(hResult);
Xvu(vA tw;}jh //修改注册表相应的值并释放键句柄
1Mzmg[L8 'L'R9&o<X }
5!
{D! dd;~K&_Q/i ?9/G[[( 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。