自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
ZA9']u%EJ z~VA#8> VC修改注册表的方法与函数
-O_UpjR; 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
BEI/OGp 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
Gg.w-& v"F0$c 通过修改注册表实现IE换貌
{YGz=5 ^ 我们都知道,在注册表中,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()
?Y hua9 3mm`8!R {
IYQYW.`ly Dh9-~}sW' if(AddressNum==0){
wyc,Ir ~AE034_N AfxMessageBox("没有可应用的选项!");
EhD|\WLx! 2Qy!Aa return;
yZ!Eu#81 }zobIfIF }
&J~S $ %~W}262 CString address;
?&GMp[ f^%E]ki int sel=m_address1.GetCurSel();
{X =\ l.34h if(LB_ERR ==sel){
_$bx4a Q[b({Vj;tG AfxMessageBox("请先选中要应用的选项!");
h3)KT+7. q!H3JL return;
#/tdZ0 fFd9D=EW. }
OUdeQO? Ch.T}% m_address1.GetText(sel,address);
=)zq%d?i; _+Q$h4t
//取得所需加入的网址字符串
Asn0&Ys4 MV/~Rmd. CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
cUm9s>^)/ 7GIv3Dc HKEY hResult;
yCkm| :>;psR RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
4vX]c 9Y 4N //得到欲修改键的句柄
asq/_` Hwc{%.% ae SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
52["+1g\ hL3,/^;E , RegCloseKey(hResult);
5{u6qc4FW (Dar6>! //修改注册表相应的值并释放键句柄
NF1D8uI GVfu_z? }
- dOT/%Ux L$Leo6<3a 2.给工具条指定用户特定的背景图案
]8_h9ziz H3c=B /+ void CJhfDlg::OnAddBackGround()
w7Pe<vT x@Y2jM {
>=`c [=:Z_ 4bxkp3~h; if(PictureNum==0){
$HXB !$d 0%qUTGj AfxMessageBox("没有可应用的选项!");
b"Mq7&cf #VOjnc/rW return;
(wlsn6h z8j(SI;3 }
qE`=^
V-cuG. CString picture;
#pe{:f? @\DD|o67 int sel=m_PicList.GetCurSel();
Ad,r(0a LZ ) ]%9Tgn if(LB_ERR ==sel){
`JE>GZY Me}TW!GC AfxMessageBox("请先选中要应用的选项!");
eTF8B<? PD}R7[".> return;
HEuM"2{DMM $&C(oh$: }
q%k+x) )a^Yor)o" m_PicList.GetText(sel,picture);
bSr 'ji 6oP{P_Pxi //取得所需加入背景图案文件路径
h3kHI?jMWG tRy
D@} CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
FR}H$R7# `Q&]dE= HKEY hResult;
+r0eTP=zf 4{DeF@@ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
bS<@Rd{g qp W#!Vbx //得到欲修改键的句柄
7idi&h" [)3 U])w/ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
X?6h>%) k VU/W~gb4"A SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
IPO[J^#Me O8r"M8 RegCloseKey(hResult);
VDTY<= Q hf<$vRti> //修改注册表相应的值并释放键句柄
UPKi/)C; 7rSUSra RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
^@Qi&g`lr? lk +K+Ra/ //得到欲修改键的句柄
^2r}_AX ;1.>"zX( SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
mbBRuPEa=u <s-@!8*( SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
Uxemlp%%* ,8IAhQa RegCloseKey(hResult);
qP"JNswI_ X[Ek'=} //修改注册表相应的值并释放键句柄
be:phS4vz -L9R&r#_e }
TJXraQK-= zcB2[eaV b.4Xn0-M 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。