自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
<e;jWK y\^@p=e VC修改注册表的方法与函数
%9t{Z1$ 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
{I4% 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
9 wAA.
-" J6*f Uh 通过修改注册表实现IE换貌
dX_!0E[c 我们都知道,在注册表中,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()
Xl#Dw bx ( V$Zc0 {
,%A)"doaG bAdiA2VF' if(AddressNum==0){
&svx@wW >eQbipn AfxMessageBox("没有可应用的选项!");
Dt
W*n1Bt #"::
'?, return;
E [S?
b=^ gXLCRn!iR }
BY3bpR w "{bp CString address;
X` ATH^S uaiz*Im int sel=m_address1.GetCurSel();
<x0)7xX tE[H8 if(LB_ERR ==sel){
4avc=Y5 :-)GNf yGz AfxMessageBox("请先选中要应用的选项!");
`3J':Vh #>=8w9] return;
5Q`RTn% im8
-7Xt }
}7.#Dj/r6 C)OG62 m_address1.GetText(sel,address);
J7:9_/e0T ?{eY\I //取得所需加入的网址字符串
F$i$a b )u0O_R CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
{&-#s#& YJd8l>mz HKEY hResult;
qYK4)JP @M=$qO_$9 RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
IhE9snJ[ (VyA6a8 //得到欲修改键的句柄
BBxc*alG0 #EJP(wXa SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
FY8!g'.Oe Y.>kO RegCloseKey(hResult);
gY!N3 *: L=RGL+f1_ //修改注册表相应的值并释放键句柄
f3G1r5x oE1M/*myS }
{SJsA)9:# )B ;M
2.给工具条指定用户特定的背景图案
+oZH?N4yaM b0 & void CJhfDlg::OnAddBackGround()
KnJx{8@z C`NmZwL {
=p q:m DVh)w}v if(PictureNum==0){
<4c%Q) pA.._8(t AfxMessageBox("没有可应用的选项!");
qp>N^)> X'x3esw w return;
v5T`K=qC \,R!S /R# }
0 _A23.Y hU"F;4p CString picture;
Iyyo3awc 0/Z
!5-. int sel=m_PicList.GetCurSel();
IE;\7r+h Qs l80~n_7 if(LB_ERR ==sel){
Q_]~0PoH 6aY>lkp AfxMessageBox("请先选中要应用的选项!");
q>-R3HB =IZ[_ /@ return;
RBE7485 4&{!M
_ }
&s8<6P7 PNpu*#Z` m_PicList.GetText(sel,picture);
I8u!\F Uyk,.*8" //取得所需加入背景图案文件路径
BSgTde|3y =((yWn+t CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
^I`a; Blk}I HKEY hResult;
X?/Lz;,& xQU"A2{}> RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
3z3_7XI c<4F4k7 //得到欲修改键的句柄
?Vc0) @h}`DNaZ^ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
]
8Tzr b7Oj<!Wo` SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
"|t!7hC u,o1{%O RegCloseKey(hResult);
_ie.| 4k *5D3vB*S //修改注册表相应的值并释放键句柄
dJi|D -Sz_mr RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
n@
[ AnMV < //得到欲修改键的句柄
I^_NC&m W`M6J}oG SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
,mKObMu "3}<8c SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
B!;+_%P76 -V5w]F' RegCloseKey(hResult);
68e[:wf ]Blf9h7 //修改注册表相应的值并释放键句柄
F*` t"7Lm &|
!B!eOY }
? ?[g}> 1nI^-aQ3 I[D8""U 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。