自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
B!;:,(S~ &-p~UZy VC修改注册表的方法与函数
/;/:>c 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
Ha/Qz'^S; 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
.VNz(s ^Y;,cLXJ 通过修改注册表实现IE换貌
(*=>YE'V{ 我们都知道,在注册表中,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()
mMOgx 27+faR {
=nc;~u|] @mv
G=:k if(AddressNum==0){
=+Odu b_6cK# AfxMessageBox("没有可应用的选项!");
Eu~1t& 4 {r$Ewc$Yb7 return;
d$x vEm @1&"S7@}u }
OFmHj]I7= CLe{9-o CString address;
4X7J~ V|B4lGS& int sel=m_address1.GetCurSel();
o _l_Yi MBw;+'93qf if(LB_ERR ==sel){
~x/ka43 ]s^+/8d= AfxMessageBox("请先选中要应用的选项!");
dlCiqY:} E`(=n(Qu return;
|<,0*2 ~_"V7 }
L@=$0p41; mDZA\P_ m_address1.GetText(sel,address);
ot2zY
dWAz f=Pn,.>tIz //取得所需加入的网址字符串
Vp~ cN nw+^@|4 CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
.{ljhE: vzbGL ap# HKEY hResult;
gp{C89gP 7B\NP`l RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
dI%ho<zm] _F`JFMS //得到欲修改键的句柄
yEbo`/ ]b }2e s" SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
&fWC-| :aaX Y:< RegCloseKey(hResult);
m%[/w wL cLwnV. //修改注册表相应的值并释放键句柄
_izjvg `{h)-Y`` }
O $e"3^Pa EirZ}fDJzB 2.给工具条指定用户特定的背景图案
l4U*Lv>
^,^MW void CJhfDlg::OnAddBackGround()
7}~w9jK"F "+7E9m6I {
ik/
X!YTu* #\}FQl6 if(PictureNum==0){
];6955I! $57Q
g1v AfxMessageBox("没有可应用的选项!");
U_izKvEh Hd\oV^>
return;
.N.RpRz{f (>ze{T| }
~&RrlF h x*'H@!!G CString picture;
D84&=EpVZ 0&I*)Zt9x int sel=m_PicList.GetCurSel();
^Mq@} 0 KN657 |f if(LB_ERR ==sel){
u=W[ S)w siCm)B AfxMessageBox("请先选中要应用的选项!");
6s~B2t:Y &k_*Y-l7] return;
^t7u4w! S ;rd0+J }
R6fkc^ f R@Cg
sw m_PicList.GetText(sel,picture);
=fnBE`Uc 'm6bfS^T //取得所需加入背景图案文件路径
m>P\}A^N V,Nu!$)J CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
+jwk4BU 82EvlmD HKEY hResult;
GwP!:p| M@h"FuX: RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
2#^g] o-N 3~3tjhw;]9 //得到欲修改键的句柄
p o)lN[v sK+uwt SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
k;t G-~\d yn]Sc<uK SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
V-go?b` wn.6l
` RegCloseKey(hResult);
,'`yh|}G\ bsU$$; //修改注册表相应的值并释放键句柄
F$
G)vskd UxHI6,b RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
[Z:P{yr pQ0*)}l, //得到欲修改键的句柄
l P=I0A- 5rck]L' SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
JZxA:dg
l 9XDSL[[ SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
GfK%UZ$C /"k [T RegCloseKey(hResult);
z{w %pUn} \WC,iA%Y //修改注册表相应的值并释放键句柄
&a=rJvnIO& wS9V@ }
I9+h-t 62'9lriQ H{5,
-x 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。