自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
&c%Y<1e`% bF-"tm VC修改注册表的方法与函数
;_+uSalt 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
.*5 Z"Q['G 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
B\CN<<N>dD ',=g; 通过修改注册表实现IE换貌
r'4:)~]s 我们都知道,在注册表中,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()
K$[$4 dX] .\:J~( {
h~}.G{" K8[DZ)rO;Z if(AddressNum==0){
7Y( 5]A9= [f{VIE*?% AfxMessageBox("没有可应用的选项!");
I 3$dVls} nJFg^s1 return;
cgT %,q.),F }
)"<8K}%! osP\DiQ CString address;
^J/)6/TMXm 5M_Wj*a}7 int sel=m_address1.GetCurSel();
q3w1GD
MuI2?:~:*4 if(LB_ERR ==sel){
RHY4P4B<v> n1v5Q2xw AfxMessageBox("请先选中要应用的选项!");
L
3XB"A# +j/~Af p5f return;
K_&MoyJJ9f tkKJh !Q7 }
j`>^1Q Ey`h1Y m_address1.GetText(sel,address);
:k=mzO<& KY9n2u&4 //取得所需加入的网址字符串
5Fw - d 19U]2D/z CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
sM2MLh 'D DXR:1w[^ HKEY hResult;
dJk9@u 7/IlL RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
@%ECj)u`O F7}-! //得到欲修改键的句柄
iz[gHB gFN9jM SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
!36]ud& r6.d s^ RegCloseKey(hResult);
+cu^%CXT L,_.$1d //修改注册表相应的值并释放键句柄
KOSM]c\H gE7L L=x }
5<YzalNf g_.^O$} 2.给工具条指定用户特定的背景图案
Kq6jw/T /bRg?Q void CJhfDlg::OnAddBackGround()
L:&k(YOBA ?h8{xa5b {
YA]5~ZE\ I:j3sy if(PictureNum==0){
Sm{>rR >bo'Y9C AfxMessageBox("没有可应用的选项!");
I/J7rkf $iw%(H return;
3R$Z[D- :D:DnVZ-[@ }
VR?^HA9 V|D]M{O CString picture;
Tny>D0Z# P5<vf int sel=m_PicList.GetCurSel();
umEVy*hc Fj
p.T; if(LB_ERR ==sel){
Q /x8 #X N_C;&hJN$w AfxMessageBox("请先选中要应用的选项!");
(g!p>m!Z B9dt=j3j2 return;
6QQfQ, G=9d&N }
k+ o|0 <'U]`Lp m_PicList.GetText(sel,picture);
j Ch=@<9 3,X/,' //取得所需加入背景图案文件路径
V4w=/e_ oA-:zz>wL CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
mu]as: ~ ]2SI!Ai7 HKEY hResult;
o2H1N~e#c },$0&/>ft RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
je,}_:7 kma?v B //得到欲修改键的句柄
q>!L6h5]t j{++6<tr SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
+~zXDBS9 7*+]wEs SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
7E$&2U^Js 7L5P%zLtB RegCloseKey(hResult);
v-j3bB Y-!YhWsS //修改注册表相应的值并释放键句柄
6 ,ANNj $rB3m~c| RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
Ka!I`Yf JAc_kl{4O //得到欲修改键的句柄
~EiH-z4U [IZM.r`Z SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
~"x5U{K48S OR6ML-| SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
w*7|dZk{ )=pD%$iq RegCloseKey(hResult);
E$s/]wnr[ <i?a0 //修改注册表相应的值并释放键句柄
\ gwXH n
1b(\PA }
lJ;J~> ,U,By~s oih5B<&f# 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。