自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
w'j]Y% sm <kb@g VC修改注册表的方法与函数
n_gB#L$ 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
gI$`d?[0{ 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
z?g4^0e ]nGA1 S{ 通过修改注册表实现IE换貌
"s^@PzQpN 我们都知道,在注册表中,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()
;^SgV 3W00,f^9 {
ijSYQ Vc<n6 if(AddressNum==0){
%&S]cEw iC\=U AfxMessageBox("没有可应用的选项!");
lJ2/xE ] S;kc{? return;
h(K4AiGE %5w) }|fw }
yL,B\YCf8 1Vvx@1 CString address;
Q|r1. T+( A7Qrx% int sel=m_address1.GetCurSel();
clV/i&]Qa k18V4ATE] if(LB_ERR ==sel){
gpl!Iz~5 cSWVHr AfxMessageBox("请先选中要应用的选项!");
CawVC*b3 X~b+LG/ return;
8hV:bz" k !r z8S" }
JB}h}nb WWs>@lCK m_address1.GetText(sel,address);
LB0=V0| 2)]*re) //取得所需加入的网址字符串
?NeB_<dLa` iIRigW CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
!7|9r$ BE;iC.rW HKEY hResult;
ou4?`JF)- 1@Gv`{v RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
x/v+7Pt_ 2?&ptN)`N //得到欲修改键的句柄
`84yGXLK x$4'a~E SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
XAkl,Y 3mpjSL RegCloseKey(hResult);
_3JTHf<+ CKx}.<_ //修改注册表相应的值并释放键句柄
6d6SP)|j zh#uwT1u }
I#%-A I<f M8t.Y> 2.给工具条指定用户特定的背景图案
&KwtvUN{ XS@6jbLE void CJhfDlg::OnAddBackGround()
A}O9e D7wWk
,B {
e70*y'1fu cFo-NI2 if(PictureNum==0){
1EB`6_>y s^<
oU AfxMessageBox("没有可应用的选项!");
P]^]
T}5 J]e&z5c return;
2j|Eh
".=EAXVU }
v-@@>?W- "[,XS` CString picture;
rZ7 Ihof %&NK|M+n int sel=m_PicList.GetCurSel();
^hJ,1{o efm<bJB2 if(LB_ERR ==sel){
0cVXUTJ|W K>~l6 AfxMessageBox("请先选中要应用的选项!");
l1-FL-1 MR: {Ps&, return;
C5?M/xj Nq3P?I(< }
6= D;K.! 3._fbAN%e m_PicList.GetText(sel,picture);
DO;
2)ZQ% fx5vaM! //取得所需加入背景图案文件路径
pj`-T"Q /PlsF CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
xR3A4m nXjUTSGa) HKEY hResult;
`MS=/x E ;o=mL_[ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
Qw+"> J.(_c'
r //得到欲修改键的句柄
4)z](e$ Q2uE_w`B SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
V2X(f6v 7y3; F7V SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
*!kg@ _0K =T`-h"E~@ RegCloseKey(hResult);
*bK@ A2` kzT' //修改注册表相应的值并释放键句柄
*G4; 0v?,:]A0E RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
TM;)[R@ J\BdC]; //得到欲修改键的句柄
5;*C0m2%i k-/$8C SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
Z:{Z&HQC Z^'; xn SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
AHb
L.'N'-BV RegCloseKey(hResult);
l/5/|UE9
Yv)/DsSyL //修改注册表相应的值并释放键句柄
Et(prmH ,??|R`S }
p%_TbH3j` 4$rO,W/&0 =/;(qy9.-R 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。