自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
[vkz<sL" a;J{'PHu VC修改注册表的方法与函数
h_ef@ZwSw 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
iha{(- 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
/238pg~Cw5 RwMK%^b 通过修改注册表实现IE换貌
ps1ndGp~# 我们都知道,在注册表中,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()
{yQeLION |'WaBy1 {
|e@9YDZ 4:-h\% if(AddressNum==0){
6/@"K
HHVe >;}np
F> AfxMessageBox("没有可应用的选项!");
|?6r&bT euO!+9p return;
W!pLk/|ls pIdJ+gu(s }
@EH:4~ 4Y5Q>2D} CString address;
[@Y<:6 (#FWA<o int sel=m_address1.GetCurSel();
_V6jn~N Mi&,64< if(LB_ERR ==sel){
}18}VjC! Z.+-MN WV AfxMessageBox("请先选中要应用的选项!");
;
mF-y,E -M}#-qwf return;
f^il|Obzl tL(B gku9 }
E+Z//)1Z
]5W0zNb* m_address1.GetText(sel,address);
1a4HThDXP 4jefU}e9# //取得所需加入的网址字符串
Xk%92Pto |
Zx CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
Q':x i;?Kt ~TwjcI*/ HKEY hResult;
b[,J-/;JNL )K.~A&y@ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
'F3Xb 4]O{Nko) //得到欲修改键的句柄
&3lg\&" =zBcfFii`w SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
uc9t0]o=h 57IAH$n8o RegCloseKey(hResult);
wjW>#DE /n;-f%dL //修改注册表相应的值并释放键句柄
7?<.L @ SaU2 }
1 zIFQ@ ;n_ |t/= 2.给工具条指定用户特定的背景图案
)$K )`uqb aOWW..| void CJhfDlg::OnAddBackGround()
(&R/ns~
s*{l}~fPkW {
v'uWmL7C [2I1W1pd if(PictureNum==0){
S4uX utd '"&M4.J{ AfxMessageBox("没有可应用的选项!");
1o\P7PLe NNSHA'F,.\ return;
"!()yjy "&*O7cs$pA }
S~L$sqt gV@FT|j!i CString picture;
_<pSCR0 -
y[nMEE int sel=m_PicList.GetCurSel();
|kJ'FZZd 9qS~-'&q# if(LB_ERR ==sel){
P6'Oe|+' vgY )
L AfxMessageBox("请先选中要应用的选项!");
9/3gF)I} F#_JcEE return;
\'Oi0qo> yJ*`OU# }
-t~l!!N( 5/Viz`hsz m_PicList.GetText(sel,picture);
<$bM*5sHF> I3`WY-uv //取得所需加入背景图案文件路径
R:c$f(aKv% l,j7I3&~% CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
R6l`IlG` =@(&xfTC HKEY hResult;
yh0zW
$ 87WIDr RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
}jHS qv\n]M_& //得到欲修改键的句柄
&Omo\Oq&W> 6;s.%W SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
Wno{&I63 0#1hkJ" SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
K|JpkEw -]yM<dP RegCloseKey(hResult);
q"){PRTm/ /)RyRS8c //修改注册表相应的值并释放键句柄
XY %er ipzv]c& RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
BG ,ln(Vz oz3N
8^M //得到欲修改键的句柄
ptJ58U$Bb
*_feD+rq SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
)F_vWbg Do1 Ip&X SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
c;siMWw; (gW#T\Eln RegCloseKey(hResult);
7{jB!Xj hr@c7/L //修改注册表相应的值并释放键句柄
P5$d#Y(= \"=4)Huv }
dH]0(aJ &1nZ%J9 %L;z ~C 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。