自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
]_F%{ 8| oqUtW3y VC修改注册表的方法与函数
g<}K^)x 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
uWi+F)GS^K 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
:[\}Hn= W~dS8B=< 通过修改注册表实现IE换貌
j6IWdqXe 我们都知道,在注册表中,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()
9Z
rWG ;t"#7\ {
bnUd !/; Jqjb@'i if(AddressNum==0){
j<wg>O:s%r $]xe,}*Af AfxMessageBox("没有可应用的选项!");
HAN#_B1. `C] t2^ return;
QXgh[9wG *Pw;;#\B }
mm:\a-8j z#bOFVg# CString address;
"{L%5:H@ p~+)!Z# int sel=m_address1.GetCurSel();
Ojie.+'SB 0'z$"(6D if(LB_ERR ==sel){
2x3&o|J ,Iwri\ AfxMessageBox("请先选中要应用的选项!");
*4]I#N +a"Asvw2 return;
EvQN (_ 7(Y!w8q&^ }
u -CY- duT2:~H2 m_address1.GetText(sel,address);
0(:"q!h V0ulIKck //取得所需加入的网址字符串
@x"vGYKd
BNuzlR CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
GwW!Q|tVz= XSn^$$S HKEY hResult;
4vp,izNW mcp}F|ws RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
ZDcv-6C)B $*L@ym //得到欲修改键的句柄
D8BK/E- KzI$GU3 SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
yhgHwES" &hyr""NkAm RegCloseKey(hResult);
>vt#,8VAN D3(|bSca //修改注册表相应的值并释放键句柄
!)_80O1 o&fAnpia= }
SYeCz(H>d e=1&mO? 2.给工具条指定用户特定的背景图案
tjuW+5O ?f CLiK void CJhfDlg::OnAddBackGround()
WI](a8bm 6>SP5|GG {
Y-gjX$qGo j#3}nJB%#i if(PictureNum==0){
9I+;waLlB ZTMzL%i AfxMessageBox("没有可应用的选项!");
6wIv7@Y OT{qb!eYI return;
Rfeiv Y>wpla[kUq }
Hx62x X DIkD6n?V CString picture;
(ZT*EFhb( ~EpMO]I int sel=m_PicList.GetCurSel();
V0c*M>V 2W$c%~j$2 if(LB_ERR ==sel){
?K|PM<A }\OLBg/ AfxMessageBox("请先选中要应用的选项!");
o8H<{D13 "|.>pD#0& return;
D0~ WK
stl 1Jd82N\' }
zPH1{|H+l toX4kmC m_PicList.GetText(sel,picture);
hy3[MOD$G Q^b_+M //取得所需加入背景图案文件路径
t A\N$ gE`G3kgn{ CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
Rr|VGtg FOM~Uj HKEY hResult;
v}+axu/? "n7rbh3VW RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
j K$4G.x Y^2`)': //得到欲修改键的句柄
x,5$VLs\+ pvDr&n9 SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
z%`Tf&UL A\i/@x5# SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
\G#Qe*"'K *;,=x< RegCloseKey(hResult);
os/~6 jtS+y)2 //修改注册表相应的值并释放键句柄
l:z:tJ#( [I4K`>|Z RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
^G~W}z?- (X)$8y //得到欲修改键的句柄
nAoGG0$5 ^ B=x-G. SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
U#Wc!QN-t OcQ_PE5\ SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
2t<
dCw Z,lUO. RegCloseKey(hResult);
l(v$+ {l0;G)- //修改注册表相应的值并释放键句柄
j<szQ%tJlI P>)-uLc~W }
r{YyKSL1*K 1_fFbb" p87s99 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。