自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
T{M~*5$ gkS#=bv9e@ VC修改注册表的方法与函数
| ]`gps 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
U6qv8*~ 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
@L|X('i ,)A^ 3Q* 通过修改注册表实现IE换貌
jh.W$.Oq 我们都知道,在注册表中,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()
TDg#O!DUF JDVMq=ui {
"H>L!v ;J pdnV if(AddressNum==0){
q4vu r>m6 10dVV[= AfxMessageBox("没有可应用的选项!");
+F ~;Q$T .:,RoK1 return;
N$J)Ow T{u!4Yu }
dwks"5l }*l V CString address;
~I6Er6$C^ >jAr9Blz] int sel=m_address1.GetCurSel();
NUBzm nA>8 0`/ PEK{ if(LB_ERR ==sel){
vrXmzq ?iG}Qj@5 AfxMessageBox("请先选中要应用的选项!");
SV .\B POTW+Zq] return;
haW8zb0z :qy`!QPUm }
}gL9G wzB*M}3 m_address1.GetText(sel,address);
S4kGy}{+i 9z5K -s //取得所需加入的网址字符串
$DW3H1iW YMP:T?vMVh CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
^a|$z$spf /_E:sI9( HKEY hResult;
/h%<e v'*Q[
(' RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
vBsd.2t~ >x)YdgJ* //得到欲修改键的句柄
}(O/ y- !_s|h@ SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
m`
cw: 9Qp39(l: RegCloseKey(hResult);
W<TW6_*e 8Q^yh6z //修改注册表相应的值并释放键句柄
}[Uh4k8P Q^/5hA }
-yeQQ4b 0m,A`*o 2.给工具条指定用户特定的背景图案
TCp!4-~, 49}yw3- void CJhfDlg::OnAddBackGround()
"s2?cQv{# c"t1E-Nsk {
4vTO # F k|-`d if(PictureNum==0){
PaV [{CD &oiX/UaY AfxMessageBox("没有可应用的选项!");
gs 8w/ rq9{m( return;
nL@
"FZ`( :N^1T6v }
Ken |!rL 4cL
NPl< CString picture;
Mm-FdP
m -@i)2J_WP int sel=m_PicList.GetCurSel();
6BVV2j)zl: 0.O pgv2K if(LB_ERR ==sel){
JY0t Hs c&)H AfxMessageBox("请先选中要应用的选项!");
$G5m/[KDI j11 \t return;
,Ihuo5>/z [6BLC{2 }
tC\x9&: zB\g'F/ m_PicList.GetText(sel,picture);
SqFya wKum{X8 //取得所需加入背景图案文件路径
rwFR5 [y}/QPR CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
7CUu:6% * 103 HKEY hResult;
zc]F O/gok+K RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
~j3B' Yqmx] 7Y4 //得到欲修改键的句柄
Vj4
if@Z $/],QD_;" SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
!798%T p+;Re2Uyg SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
L@S"c
( %cO;{og M RegCloseKey(hResult);
m(nlu N<hbV0$ % //修改注册表相应的值并释放键句柄
vX)6N#D! t*<vc]D RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
^j'; 4' l7aGo1TcIh //得到欲修改键的句柄
66D<Up'K wc)[r~On(5 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
*x`z5_yfO [ar:zlV8 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
4DEsB)%X "Na9Xea RegCloseKey(hResult);
O 4N_lr~ J><O
51 //修改注册表相应的值并释放键句柄
G6JyAC9j Q'JE DH\ }
Q6,rY(b6 0NfO|l7P )]J I Q"rR 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。