自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
tv.<pP9-C f*B-aj# VC修改注册表的方法与函数
w#[cGaIB 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
3fp&iz 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
bc4 V& 2,F9P+ 通过修改注册表实现IE换貌
'5 ~cd 我们都知道,在注册表中,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()
as|w} $ PCHspe9!y {
)Z:D}r8[ W>i"p~! if(AddressNum==0){
/.<v,CR Y#XRn_2D AfxMessageBox("没有可应用的选项!");
~mARgv AB`.K{h return;
!{(Bc8
hT CUYA:R<) }
Hcwfe=K&/ J-Tiwl CString address;
Zi.' V %^HE^ & int sel=m_address1.GetCurSel();
qSB&Q0T J
(?qk if(LB_ERR ==sel){
(nt`8 0 I](a 5i AfxMessageBox("请先选中要应用的选项!");
C[G+SA1&W |Rz.Pt6 return;
DegbjqZ# /De~K+w7o }
.=
?*Wp 8>,w8(Nt m_address1.GetText(sel,address);
`H6~<9r 3>-h-
cpMX //取得所需加入的网址字符串
#$-E5R;x - ~|Gwr" CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
%&yPl{ )\=xPfs HKEY hResult;
w+R7NFq *H/3xPh,* RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
6<<"9mxK (pd$?vRy //得到欲修改键的句柄
&<]f- B(++*#T!^m SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
P .m@|w&.K .Mb[j1L^ RegCloseKey(hResult);
LWT\1# L|T?,^ //修改注册表相应的值并释放键句柄
Rbf6/C ,
:#bo]3 }
YE{ [f@i0 Qk:Lo*! 2.给工具条指定用户特定的背景图案
mGj)Zrx> 5M~{MdF|. void CJhfDlg::OnAddBackGround()
`a4&_`E,p PY.K_(D {
hOUH1m. 'UIFP#GtFO if(PictureNum==0){
*G>
x07S)~ MhD' AfxMessageBox("没有可应用的选项!");
fw jo? ,UMr_ e{| return;
I[Lg0H8 |(z{)yWbC[ }
%- 540V{q p8~lGuH CString picture;
wW@e#: )N&SrzqTK int sel=m_PicList.GetCurSel();
oQ<[`.s FN-/~Su~J if(LB_ERR ==sel){
$u!(F]^ FOsd{Fw AfxMessageBox("请先选中要应用的选项!");
U`ttT5; Lj<TzPzg* return;
P_1WJ hpF_@n
}
e$Ds2%SaT j8`
B m_PicList.GetText(sel,picture);
"/aZ*mkjfJ mvEhP{w //取得所需加入背景图案文件路径
j2MA['{ {fR\yWkt? CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
cERIj0~ -[7+g HKEY hResult;
(XO=W+<' h9H z6
> RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
SN}K=)KF# DWt|lO //得到欲修改键的句柄
K6IT$$g x|0C0a\"A SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
2`$*HPj+G gT+g@\u[ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
a|7C6#iz$ 2d[q5p RegCloseKey(hResult);
L/tpT?$fi V/ G1C^'/ //修改注册表相应的值并释放键句柄
73cb1kfPd [`\VgKeu RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
AOR?2u i<^X z //得到欲修改键的句柄
xSmG,}3mF k4K.
mlIO SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
avRtYL o72r `2 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
-qIi.]/f"9 kw#X,hP RegCloseKey(hResult);
(u@:PiU/eP o8g7wM]M //修改注册表相应的值并释放键句柄
.dlsiBh q`c!!Lg }
Z6Fu~D2Uy %} `` : yW|J`\`^T 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。