自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
{I`B?6K5 .|x0du| VC修改注册表的方法与函数
I3s'44 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
P4Wd=Xoz6 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
R#
mZYg
g`3g#h$ 通过修改注册表实现IE换貌
es&+5 我们都知道,在注册表中,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()
~d){7OG (|h<{ -L {
v>7t J[s ?jz{fU if(AddressNum==0){
>-EoE;s g 9>p?XY AfxMessageBox("没有可应用的选项!");
(Q#ArMMORI 3J%jD return;
`[57U,v S3btx9y{ }
Wb/@~!+i` /.7x[Yc CString address;
[Z~>7ayF+) //K]zu int sel=m_address1.GetCurSel();
:8yrtbf$ m6+2rD if(LB_ERR ==sel){
u\smQhQGE q2&&n6PYW AfxMessageBox("请先选中要应用的选项!");
Tb:n6a@ {RwwSqJ return;
I{B8'n{cN $5%tGFh }
Ho\K
%#u LEHlfB#z`@ m_address1.GetText(sel,address);
.E[k}{k,
2Xe2%{ //取得所需加入的网址字符串
<J[*~v%( 3_vggK% CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
=xai 7iM {K_YW HKEY hResult;
jk) V[7P -wvJZ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
++Az~{W7 ~ EE*/vX //得到欲修改键的句柄
@*A(#U8p3 )Ky0q-W SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
>SSF:hI"J Ca?pK_Y RegCloseKey(hResult);
B6OggJ9Iq dKZffDTZ //修改注册表相应的值并释放键句柄
O:p~L`o>> H)t8d_^|j }
w}oH]jVKL6 g&riio7lx 2.给工具条指定用户特定的背景图案
j"}alS`- 4)Z78H%> void CJhfDlg::OnAddBackGround()
N@;6/[8 CZ|Y o {
"4n_MV>p
1u)I}"{W> if(PictureNum==0){
j~Rh_\>Q J|,| *t AfxMessageBox("没有可应用的选项!");
CNfeHMT G)'cd D1 return;
{Qlvj.Xw /$+ifiFT }
W#-M| 6D w[n CString picture;
jc)D*Cf a8A8?: int sel=m_PicList.GetCurSel();
b.j\=c ]#+fQR$! if(LB_ERR ==sel){
xqM R[W\x LD]XN'?"W AfxMessageBox("请先选中要应用的选项!");
w9c DFqXZfjm return;
t6s#19g txTDuS }
%UgyGQeo
CW, Kw m_PicList.GetText(sel,picture);
`4(k ?Pk2 Tw-gM-m; //取得所需加入背景图案文件路径
^om(6JL2 /1o~x~g(b CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
e@=Bl- ? 0nbvV5v7 HKEY hResult;
GZ*cV3Y`& MP0gLi RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
S : 9zz bBC3% H^
//得到欲修改键的句柄
AqE . TK 6S<J'9sE SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
A4 o'EQ?~ 5BTQJa SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
mi<V(M~p ]?b#~ RegCloseKey(hResult);
60^dzi!vs oy#Qj3M8= //修改注册表相应的值并释放键句柄
NfDg=[FN[ dJ:EXVU RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
&kYg
>X <EJ}9`t //得到欲修改键的句柄
?
vk;b! mqw&SxU9 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
K`PF|=z iHWl%]7sN SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
D{ @x w+*Jl}&\ RegCloseKey(hResult);
iS=}| 8" 97'*Xq //修改注册表相应的值并释放键句柄
/<
h~d WPCaxA+l }
_z{:Q LF{d'jJ&K >/ W:*^g) 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。