自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
][:rLs MCnN^ VC修改注册表的方法与函数
QK <\kVZ8 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
]WL|~mG 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
h-XY4gq/ NFyMY#\] 通过修改注册表实现IE换貌
>K:u?YD[ 我们都知道,在注册表中,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()
4#BRx#\O m<@z}%v- {
}ugxN0 d2jr8U if(AddressNum==0){
5*G%IR@@LK Qv{,wytyO AfxMessageBox("没有可应用的选项!");
>*qQ+_ e!X(yJI[O6 return;
g9>~HF$U <P4FzK }
|g_g8[@`} I=rwsL CString address;
Iti0qnBN5 "wM1 qX int sel=m_address1.GetCurSel();
DxS sg 2@Lbfo A if(LB_ERR ==sel){
y4jU{, 8 ws$k\> AfxMessageBox("请先选中要应用的选项!");
92[a;a V|FrN*m return;
)K0i@hM(n $3;Upgv }
8<dOMp;}r f_\_9o"l m_address1.GetText(sel,address);
GP,<`l& Ix8$njp[ //取得所需加入的网址字符串
O4|2|sA S# we3 CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
&Lj@9\Dh ~5OL6Bi-q HKEY hResult;
ai-n z-; HW 6.O|3 RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
..qd,9H Tlsa%pn //得到欲修改键的句柄
A
Y9
9!p mP^SS
Je SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
Pe ~c 0(\+-< RegCloseKey(hResult);
?IW_O~Js pJ^NA2 //修改注册表相应的值并释放键句柄
6X_\Ve PHra+NY#A }
j]5WK_~M ZFxLBb: 2.给工具条指定用户特定的背景图案
zx%X~U Vfs$VY2. void CJhfDlg::OnAddBackGround()
PkUd~c IVjU`ij {
4s.]M>Yb K4%/!` if(PictureNum==0){
;L"!I3dM) |:[9O`U)s AfxMessageBox("没有可应用的选项!");
Zi
ESlf$ zG9|K return;
?IhB-fd>@ @,OT/egF4: }
$g\&5sstE ]z == CString picture;
]r/^9XaqtA d7Ro}>lp int sel=m_PicList.GetCurSel();
wij,N(,H GjT#%GBF if(LB_ERR ==sel){
_D;@v?n6!O *@S@x{{s AfxMessageBox("请先选中要应用的选项!");
^vni&sJ }DjYGMrTB return;
0^l%j 8/ WlVl[/qt }
pGGmA;TC1 *yaw$oB m_PicList.GetText(sel,picture);
*3+-W v#oi0-9o[ //取得所需加入背景图案文件路径
3S~(:#| 9lzQ\} CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
q{' ~+Nq z@U}~TvP HKEY hResult;
IOl+t,0x& l*}FXL RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
EbK0j? &t}?2>: //得到欲修改键的句柄
\~DM p]gT&[iJ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
{6,|IGAq
V vF={9G SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
m5c&&v6%"b pbBoy+.> RegCloseKey(hResult);
+wfVL|.Wq -4 Ux,9& //修改注册表相应的值并释放键句柄
*b|NjwmB Te-Amu RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
uofr8oL~ 0!GAk //得到欲修改键的句柄
Jfhk@27T v/QUjXBr SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
*I*i>==Z LJTo\^* SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
DSyXr~p8 X_ TiqV RegCloseKey(hResult);
NC"yDWnO' rpV1y$n<F //修改注册表相应的值并释放键句柄
L^J-("e_ b]fzRdhl }
J7$_VP u'5`[U
-! O<*5$,K9 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。