自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
:35h0;8+ IxUj(l1Fm VC修改注册表的方法与函数
9Cd/SlNV2 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
BQWgL 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
KxKZC}4m N{g7 通过修改注册表实现IE换貌
,m`&J? 我们都知道,在注册表中,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()
\i,H1a GFPrK9T {
\H>T[ +Eb-|dM if(AddressNum==0){
*LBF+L^C% nkPlfH AfxMessageBox("没有可应用的选项!");
\9p.I?= [I%eRo[ return;
U3B&3K} ~ "zNS6I?rzE }
2"a%%fv r1IvA^X CString address;
*jc
>?)k ,2Ed^!` int sel=m_address1.GetCurSel();
ZGH
7_K rMJ@oc if(LB_ERR ==sel){
~.^:?yCA J&h59dm- AfxMessageBox("请先选中要应用的选项!");
Xlug{ Uh vgtAJp+p* return;
;sYDs71y AaB1H7r- }
ulN1z 1t/c@YUTy m_address1.GetText(sel,address);
xzY/$? y_[VhZ% //取得所需加入的网址字符串
={cM6F}a@ cu5}( CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
(T2HUmkQ6 "Y^Fn,c HKEY hResult;
:,p3&2I 3v3cK1K@oE RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
7^rT-f07 j^b&Q //得到欲修改键的句柄
L T`T~|pz 9HN&M*} SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
Y'P^]Q=}_# k~<Ozx^AyY RegCloseKey(hResult);
e^\(bp+83
]6v7iuvI //修改注册表相应的值并释放键句柄
LC=M{\ 3`SH-"{j% }
*wqR .n? _G-6G=q 2.给工具条指定用户特定的背景图案
VWdTnu Tg@G-6u0c void CJhfDlg::OnAddBackGround()
d=+zOF YSB> WBS-< {
3_;=y\F =HMCNl
if(PictureNum==0){
o\W>$$EXD ho^c#>81 AfxMessageBox("没有可应用的选项!");
|]q{qsy V3*@n*"N; return;
LQ Ux} *j,noHUT~> }
N!?~Dgw &~.|9P/45 CString picture;
E 8W*^^z( SLkgIb~'X int sel=m_PicList.GetCurSel();
bSI*`Dc"! G
DBV if(LB_ERR ==sel){
t`}=~/#`X !7]^QdBLY AfxMessageBox("请先选中要应用的选项!");
?t\GHQ$$? 7w5l[a/ return;
L28wT)D- ;
1?L }
yP-$@Ry .aWwJZ=[ m_PicList.GetText(sel,picture);
9(=+OQ6 z/5TYv)S //取得所需加入背景图案文件路径
*pS3xit~ %y>*9$<pXe CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
3\ )bg
R: 1$}Tn HKEY hResult;
(NnE\2 \mb@-kM) RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
;/23CFYM j}@LiH'Q //得到欲修改键的句柄
qa:muW S9b=?? M) SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
OL#i!ia. Q-s5-&h( SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
5A %TpJ k+@ :+RL RegCloseKey(hResult);
g:c?%J S>HfyZ&Pc //修改注册表相应的值并释放键句柄
}{J>kgr6 fWg3gRI RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
7S=]@* vsA/iH. //得到欲修改键的句柄
Q}lY1LT` %AT/g&M&1# SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
VD,g3B p -yIx:*KI SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
~:C`e4 7we='L&R RegCloseKey(hResult);
/ 8dRql-Ne M>BVnB_,- //修改注册表相应的值并释放键句柄
HsG3s?* V+})$m*> }
LsMq&a-j2 WT 5 2 n%vmo
f 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。