自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
XWXr0>!,? $L\@da? VC修改注册表的方法与函数
cm,4&x6 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
uY]T:UVk 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
]5)"gL%H` .<.#aY;N 通过修改注册表实现IE换貌
cmIT$?J 我们都知道,在注册表中,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()
*IqVY& }^9paU {
I&\4C.\> AK;^9b-}q: if(AddressNum==0){
y]^#$dK(z F|*tNJU> AfxMessageBox("没有可应用的选项!");
snq;:n! j%WY ,2P return;
QoseS/ e96#2A5f }
[zx|eG<&- GMe0;StT CString address;
ll2Vk*xs ZRPy~wy> int sel=m_address1.GetCurSel();
j.B>v\b_3 f~R[&q+ if(LB_ERR ==sel){
A_i zSzC1 bBG/gQ AfxMessageBox("请先选中要应用的选项!");
N6q5`Ry }H2#H7!H return;
l?<q
YjI +`Fb_m)f }
P9s_2KOF 'e85s%ru m_address1.GetText(sel,address);
[Xq<EEb gb(#DbI //取得所需加入的网址字符串
Bj8<@~bX:L +(y>qd CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
_Fxe|"<^ 03F3q4" HKEY hResult;
C]Q>*=r +N8aq<l RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
_aY. ,(;5%+#n //得到欲修改键的句柄
%ZiK[e3G Q.1XP SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
E|{m"RUOy ^}@`!ON RegCloseKey(hResult);
U3+A MVnB Bz:&f46{ //修改注册表相应的值并释放键句柄
%",ULtZ+ ]zcV]Qj$~ }
C#h76fpH lz}llLb1 2.给工具条指定用户特定的背景图案
Pa[?L:E p+)C$2YK void CJhfDlg::OnAddBackGround()
#@E(<Pu4` 4]EvT=Ro {
Rf?%Tv0\ /`}6rXnw9 if(PictureNum==0){
mYzcVhV B*2{M AfxMessageBox("没有可应用的选项!");
zsQF,7/}B qh H+m return;
c&b/Joi7@ :l;,m}#@ }
6&mWIk^VC -F1P28<? CString picture;
0$l&i=L &1~Re.*B int sel=m_PicList.GetCurSel();
H) cQO?B *#6|!%?g if(LB_ERR ==sel){
2^J/6R$ Y&:/~&' AfxMessageBox("请先选中要应用的选项!");
^Eu_NUFe 5!8-)J-H return;
[WYJrk. }H; ]k-) }
XHZLWh"gS 8;0^'Qr8 m_PicList.GetText(sel,picture);
f}%sO H(?e&Qkg //取得所需加入背景图案文件路径
H6{Rd+\Z QY=QQG CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
^(J-dK %xHu,* HKEY hResult;
8TI#7 <ip)r; RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
y+= \z*9
ZRO.bMgZF //得到欲修改键的句柄
}-dF+m: v|>BDN@,6 SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
tpE3|5dZF =uS8>.Qj SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
TtZrttCE6 `!_? uT RegCloseKey(hResult);
1&} G+y ONNW.xHp //修改注册表相应的值并释放键句柄
'h k @>" .C6gl]6y@ RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
pIL`WE1' *6'_5~G //得到欲修改键的句柄
hl}dgp(( /lru"R D SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
x7Eeb!s0f, noFh p SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
IG>>j} ^T=5zqRD RegCloseKey(hResult);
bnIf}ut-G ,I=O"z>9 //修改注册表相应的值并释放键句柄
6B
/Jp 6mX: =Q }
8XgVY9]Qm [&fWF~D-p< =g1 D; 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。