自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
g`Q!5WK* Migl VC修改注册表的方法与函数
,+Ocb-* 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
FQ0 ;%Z 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
d~6UJ=]@8 ;FuST 通过修改注册表实现IE换貌
(QojIdHt 我们都知道,在注册表中,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()
9Y:.v@:}0 6shN% {
;P}007; } gwfe
H if(AddressNum==0){
JoG(Nk] yW*,Llb5 AfxMessageBox("没有可应用的选项!");
vV=rBO0a? [5!{>L` return;
GBBp1i
ru/{s3 }
KR R)pT ,y-!h@( CString address;
?
47"$=G '
Qlj"U int sel=m_address1.GetCurSel();
V@y&n1?6 (+xT5 2 if(LB_ERR ==sel){
jUZ$vyT X,lhVT
| AfxMessageBox("请先选中要应用的选项!");
.F%jbnKd_ <Mj{pN3 return;
NU'2QSU8 aMT=pGU }
C]3:&dx9 \|B\7a'4 m_address1.GetText(sel,address);
x&JD~,Y ~PAI0+*"q //取得所需加入的网址字符串
a-nn[j M(C$SB> CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
vxi_Y\r=T eA``fpr HKEY hResult;
ePR9r} j4`+RS+q RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
* RX^ z6 8df| 9E$ //得到欲修改键的句柄
CbxWK#aMmB Y]`o-dV SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
6f
t6;*, E{^W- RegCloseKey(hResult);
xzFQ)t& Ek_<2!%X //修改注册表相应的值并释放键句柄
(F3R!n +M#}(hK }
.kkhW8: }7xcHVO8- 2.给工具条指定用户特定的背景图案
3xdJ<Lrq )%kiM<}) void CJhfDlg::OnAddBackGround()
AOwmPHEL bI(8Um6m {
@CxgoX^ Jf#-OlEQ if(PictureNum==0){
_ShWCU-~Z 'qG-)2
t AfxMessageBox("没有可应用的选项!");
<5#2^ ( se]&)%p[ return;
R[*n3
wB L(k`1E }
9HPwl ][#|5UK8L CString picture;
9:=:P> CvEIcm=t int sel=m_PicList.GetCurSel();
=1VZcLNt @[f$MRp\ if(LB_ERR ==sel){
1{a4zGE?[ >M##q?. AfxMessageBox("请先选中要应用的选项!");
ZSD7%gE<D ~v:IgS return;
z!.cc6R K_:2sDCaN }
D,lY_6= OjG`s-91& m_PicList.GetText(sel,picture);
4vvQ7e7 \I<R.49oW //取得所需加入背景图案文件路径
u86@zlzd R9"}-A CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
Q7d@+C xD~r Q$6sI HKEY hResult;
8K8jz9.s iC>%P&|-)| RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
_Y}cK|3 !#*#ji xo //得到欲修改键的句柄
9HlWoHuC D/;[x{;E SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
B%kC>J
]w$cqUhM SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
xirq$sEl /eXiWa sQ RegCloseKey(hResult);
x(4"!# h;y}g/HZ //修改注册表相应的值并释放键句柄
i3d2+N` s1#A0%gx RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
;_|4c7 2Qh)/=8lM //得到欲修改键的句柄
piuM#+Y\'S (\r^0>H SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
~3Zz.!F 26 1? 8&c SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
E`hR(UL
? d<HO~+9 RegCloseKey(hResult);
'Nuy/\[{\ . &`YlK //修改注册表相应的值并释放键句柄
Gr)G-zE l?V#; }
U /~uu zxH<~2 +xsGa{` 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。