自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
@_
Tq>tOr& i<*W,D6
VC修改注册表的方法与函数
n@J>,K_B 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
's$/-AV 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
F!P,%JmI< *hh iIiog+ 通过修改注册表实现IE换貌
j-wKm_M#jX 我们都知道,在注册表中,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()
ppnl bL^* lS?#(}a1) {
Li9>RY+3 ;<#=|eD2 if(AddressNum==0){
0a:@DOzT Wm/0Pi AfxMessageBox("没有可应用的选项!");
XRi37|p eg"A?S return;
[X ]XH KxDfPd+j[ }
'?T<o g#o9[su CString address;
6
2t9SY !J[! i"e int sel=m_address1.GetCurSel();
3\K;y>NK e8{!Kjiz if(LB_ERR ==sel){
oE)xL%*
%$=2tfR AfxMessageBox("请先选中要应用的选项!");
fni7HBV? szp.\CMz return;
J:G{ W&7( }
goc; .~? eQ<GNvm m_address1.GetText(sel,address);
.M0pb^M bSa]={}L( //取得所需加入的网址字符串
<t dsUh:?& l0eh}d CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
k=9k4l Rg3g:TV9c HKEY hResult;
ynJ)6n7a 9[h8Dy RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
6u xF< xW58B //得到欲修改键的句柄
SD jJ?K omI"xx SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
R| XD#bG 4)Ew
rU RegCloseKey(hResult);
qoEZ> .x1.` Y //修改注册表相应的值并释放键句柄
tg7QX/KX _ o== }
TWdhl9Ot A@e!~ 2.给工具条指定用户特定的背景图案
u/%Z0`X a\KM^jrCD void CJhfDlg::OnAddBackGround()
cCcJOhk|d j9.%(* {
iYGa4@/uM [X kWPx` if(PictureNum==0){
B?ipo,2~{ Nzb=h/; AfxMessageBox("没有可应用的选项!");
k0D): B.~[m} return;
rdH^"( ?(M]'ia{ }
DPfN*a-P( ,nJCqX~/G CString picture;
HBA|NV3. 9H2mA$2jnE int sel=m_PicList.GetCurSel();
E,QD6<?[ AR c if(LB_ERR ==sel){
VUD9ZyPw
" s/ws AfxMessageBox("请先选中要应用的选项!");
_~;K] -i]2b return;
?8)k6: uM9Gj@_ }
[K1z/ea)V /as+ TU`A m_PicList.GetText(sel,picture);
_5o5/@ )"%J~:`h} //取得所需加入背景图案文件路径
**c"}S6:mC dJ~Occ 1~r CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
:wfN+g= 4wx{i6 HKEY hResult;
NKRm# >AWWwq - RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
D8`SI21P Nj +^;Y //得到欲修改键的句柄
DIgur}q)@ A(z
m SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
DH uUEv< h]}DMVV] SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
dwb ^z+ T*k}E RegCloseKey(hResult);
M$} AJS%8 mqDI'~T9 u //修改注册表相应的值并释放键句柄
Yw\lNhoPS /1eeNbd RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
6 kD. NleMZ //得到欲修改键的句柄
9 $^b^It $&s V.fGu SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
{&J
OO ITD&wg SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
L#fK
,r8 mNJCV8 < RegCloseKey(hResult);
6UU<:KH 0JW
=RW //修改注册表相应的值并释放键句柄
u.}H)wt <(1[n
pS&+ }
(Mw+SM3< w,t !<i gO/\Yi 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。