自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
bT9:9LP [a$1{[|) VC修改注册表的方法与函数
`LIlR8&@aX 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
=? q&/
cru 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
:mCGY9d4L >dF #1 通过修改注册表实现IE换貌
yJqDB$0 我们都知道,在注册表中,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()
;YQ6X> TQ/# {
b+ZaZ\-y
| jamai8 if(AddressNum==0){
G+C{_o#3 <>-gQ9 AfxMessageBox("没有可应用的选项!");
!{uV-c-5, [tt_>O return;
e*Nm[*@UW 2e ~RM2PQ }
C;70,!3 {"|GV~ CString address;
(lit^v,9 Pj8Vl)8~NV int sel=m_address1.GetCurSel();
>i61+uzEd+ Cd p_niF if(LB_ERR ==sel){
,<OS:] #&{)`+!" AfxMessageBox("请先选中要应用的选项!");
OQuTM[W &|zV Wl return;
iHo0:J~ ]Qx-f*
D6 }
#]} G{
P W`wT0kP?*] m_address1.GetText(sel,address);
V+*1?5w <sGioMr //取得所需加入的网址字符串
W$" >\A0% f%YD+Dt_V CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
iqXsDgkr 6XVJ/qZ HKEY hResult;
Gh'{O/F4* %=v<3 RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
O,I7M?dRf #:
,X^"w3 //得到欲修改键的句柄
hJ Jo+NNN d
k|X&)xTJ SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
n6IN I~, uC`)?f*I RegCloseKey(hResult);
bqR0./V 0j'k%R[l //修改注册表相应的值并释放键句柄
yLt?XhRlp dFpP_U }
lCK:5$
z0 ."v&?o
Ck] 2.给工具条指定用户特定的背景图案
R&}{_1dj8 N%?8Bm~dP void CJhfDlg::OnAddBackGround()
gJZ9XLPC UDa\* {
04z2gAo &4L+[M{J@4 if(PictureNum==0){
2)
A$bx Bk1gE(( AfxMessageBox("没有可应用的选项!");
`qbsDfq@ *:,7
A9LY return;
\hZ9in`YlR N
&vQis }
!1?Nc}T0Q& ~E7=c3:" CString picture;
O7I|<H/gVE !O8vr4= int sel=m_PicList.GetCurSel();
~7=w,+ D&&11Iz& if(LB_ERR ==sel){
N+ R/ti {R.@EFkZ AfxMessageBox("请先选中要应用的选项!");
@AkD-}^[ I#hzU8Cc return;
;;- I<TL *YY:JLe }
LaiUf_W #X xo_Es? m_PicList.GetText(sel,picture);
uU00ZPS*G[ <%rG*vzi //取得所需加入背景图案文件路径
zc-.W2"Hu 2myHn/%C CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
G@QZmuj&KH "%Eyb\V! HKEY hResult;
wXsA-H/` 8>K2[cPD RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
21U,! s?*MZC //得到欲修改键的句柄
.Su9fjy% } Pc6_# SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
Jk7[}Jc$ G l*C"V
SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
)f0t"lk 5ff66CRw RegCloseKey(hResult);
u37@9 %8+'L4 //修改注册表相应的值并释放键句柄
U;4:F{3m
2FS,B\d RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
@cF
aYI %-:6#bz //得到欲修改键的句柄
Jj'~\j vf(\?Js, SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
%zB
`Sd< ( UV8M\ SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
(byFr9z /\_ s RegCloseKey(hResult);
sT3O_20{ 4jrY3gyBX //修改注册表相应的值并释放键句柄
Rj%q)aw' sEL[d2oO }
=2{ ^qvP d7tH~9GX8 F,`y_71< 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。