自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
4fh^[\ 3`O?16O VC修改注册表的方法与函数
X u"R^
注册表是由树干和键组成的,对注册表的修改便是对键的修改。
)f+U~4G& 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
ka\OJ7u 0Q"u#V Sp 通过修改注册表实现IE换貌
H@X oqgI 我们都知道,在注册表中,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()
_!xD8Di#
gB\T[RV {
2)?(R;$, EG'[`<*h if(AddressNum==0){
-]Cc gw+9x<e AfxMessageBox("没有可应用的选项!");
e73^#O&Xt "O+5R(XT return;
nmlPX7!{$ q,<[hBri- }
O#nR>1h _ 7oV< CString address;
R cY>k )T907I| int sel=m_address1.GetCurSel();
l=`L7| ^/d >idBS if(LB_ERR ==sel){
ezhDcI_T KDi|( AfxMessageBox("请先选中要应用的选项!");
|(
(zTf RO\gax return;
R8*Q$rH< ]"AyAkT( }
QVZD/shq <0|9Tn2O m_address1.GetText(sel,address);
z!=P@b _|<d5TI //取得所需加入的网址字符串
RVtQ20e";r -@^Zq} CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
,!G{5FF8: mtic> HKEY hResult;
IWVlrGyM t<uYM RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
fBBa4"OK= "_L?2ta //得到欲修改键的句柄
ci,+Bjc DG(7|`(aY SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
+y[@T6_ q<e&0u4
RegCloseKey(hResult);
nGZX7Fx5 J2GcBzRH //修改注册表相应的值并释放键句柄
)g|
BMmB Q_*_?yf }
L;_c|\% h*0S$p<[1 2.给工具条指定用户特定的背景图案
{s,+^7 f<i7@% void CJhfDlg::OnAddBackGround()
Rg29 F9c`({6k {
XXmE+aI m!XI {F@x if(PictureNum==0){
)j6eE+gF Q^}%c
U0 AfxMessageBox("没有可应用的选项!");
L^kp8o^$ +5<k-0v return;
NW$H"}+o WV;=@v }
P#kGX(G9! 1Wg-x0R CString picture;
:(3|HTz lw8"'0 int sel=m_PicList.GetCurSel();
(J$\-a7<f z^*
'@ if(LB_ERR ==sel){
kg5ev8 OQ/<-+<w AfxMessageBox("请先选中要应用的选项!");
1F[L"W;r bTmL5}n return;
#$S}3
o ;:&?=d }
VBoMT:# HCA{pR` m_PicList.GetText(sel,picture);
-ML6d&cm B,$l4m4 //取得所需加入背景图案文件路径
}pNX@C#De <>SdVif] CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
wyc D>hc )\/
=M* HKEY hResult;
yT OyDm- XR# ;{p+b RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
6@;ha=[+ TDK@)mP //得到欲修改键的句柄
1ZJ4*b n ]rd/;kg.S SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
*ck}|RhR YZ#V#[j'^ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
/
YiQ\ _68BP)nz>. RegCloseKey(hResult);
4Wel[] =?@Q-(bp //修改注册表相应的值并释放键句柄
khd5 Cf[ 'aJgLws*w RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
";3*?/uM `hh9"Ws% //得到欲修改键的句柄
H!r &aP ;uI~BV*3 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
$Ptk|qFe ^~ =9 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
A//?6OJx? l?N`{,1^ RegCloseKey(hResult);
>.9eBz@ _v5t<_^N //修改注册表相应的值并释放键句柄
]o.vB}WsY \9c$`nn }
ZwI
1* f jrJR1npB 5vp|?-\h> 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。