自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
^/R@bp#< BmUEo$w VC修改注册表的方法与函数
KK]AX; 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
7*^\mycv 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
sx8mba( n_v c}ame 通过修改注册表实现IE换貌
'.atbl 我们都知道,在注册表中,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()
WKBPqfC gU>Y {
a%ec: % 7H[# if(AddressNum==0){
n5UcivyX
(W3R3>; AfxMessageBox("没有可应用的选项!");
abD55YJY 0Qw?.#[9 return;
=DE5Wq19 Ym&_IOx }
@Qruc\_ ;#/b=j\pi CString address;
l/LRr.x ezwcOYMXK int sel=m_address1.GetCurSel();
h'UWf"d E( 8!VY ^ if(LB_ERR ==sel){
FO3!tJ\L z^~uq: AfxMessageBox("请先选中要应用的选项!");
S_c#{4n peGXU/5.I return;
+?MjY[8j BEPDyy }
j/ 9FiuK Podm 3b m_address1.GetText(sel,address);
+ qpD>5# ~ ;)@a //取得所需加入的网址字符串
$g#X9/+< .eZ4?|at.F CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
,2H5CFX/ OD>-^W t;% HKEY hResult;
; {I{X}b rVQ:7\=Z RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
JEY%(UR8 sF_.9G)S0 //得到欲修改键的句柄
"TtK!>!. Gpe h#Q4x SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
QHMXQyr( mg'-]>$ $] RegCloseKey(hResult);
3zWY%(8t4? j(nPWEyJM //修改注册表相应的值并释放键句柄
DKIDLf +tfmBZl^ }
b)@D*plS& $C#~c1w 2.给工具条指定用户特定的背景图案
^_5$+ -Rjn<bTIy void CJhfDlg::OnAddBackGround()
~ D3'-,n[ ]3
0
7. {
sS5#Q nkN]z
^j if(PictureNum==0){
=5dv38 XFK$p^qu AfxMessageBox("没有可应用的选项!");
\iowAo$ woR((K] #G return;
Q:_pW<^ RG*Nw6A }
s%4)}w;z .fo.mC@a CString picture;
YqNhD6 CoJaVLl int sel=m_PicList.GetCurSel();
\,p) +qsdA#2 if(LB_ERR ==sel){
webT 1+#Vj# AfxMessageBox("请先选中要应用的选项!");
PJkMn |C>Yd*E,C return;
H7qda'%> VJ_E]}H }
rK=[&k rX;(48Y m_PicList.GetText(sel,picture);
X$JKEW;0BP 2vj)3%:7#E //取得所需加入背景图案文件路径
d9Rj-e1x vNE91 CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
%K ]u" 8(Z*Vz uu HKEY hResult;
zac>tXU; 9SAyU%mS: RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
Pq7YJ"Z?: LgUaX //得到欲修改键的句柄
!\|&E>Gy XHpoaHyx SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
-pqShDar| 'Iu$4xo`[ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
xO?~@5 *vBcT.|, RegCloseKey(hResult);
zI7-xqZ {_(;&\5 //修改注册表相应的值并释放键句柄
MIt\[EB ,dh*GJ{5 RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
00b
)B g :O//A6v //得到欲修改键的句柄
s/,St!A4! /}M@
@W SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
ZfvFs uE5kL{Fv SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
rxa8X wo8 _HGDqjL RegCloseKey(hResult);
hrcR"OZ~X i$og
v2J //修改注册表相应的值并释放键句柄
.4KXe"~E ~=0zZTG }
4|++0=#D$ /5yWvra ;! CQFJ= 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。