自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
Oeg^%Y
6_w~#86= VC修改注册表的方法与函数
K[V#Pj9 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
n;.); 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
2R3)/bz-SV &$pQ Jf 通过修改注册表实现IE换貌
/I`- 我们都知道,在注册表中,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()
>#;>6q9_ 1NN#-U {
8X\":l: PMj!T \B| if(AddressNum==0){
HErG%v]nw p{0rHu[ AfxMessageBox("没有可应用的选项!");
1q*=4O
+=kz".$ return;
ZoqE,ucH _ ^0UK|[ }
N71%l %:-2P CString address;
Og2w]B[
k#5Qwxu` int sel=m_address1.GetCurSel();
K>2 Bz&) 3qp\jh=FE if(LB_ERR ==sel){
oHethk T' )l AfxMessageBox("请先选中要应用的选项!");
FbD9G6h5 ^"J)^3j< return;
:u?L
y[x <q4<3A }
thh0~g0/ 2B=BRVtSs m_address1.GetText(sel,address);
#/>OW2Ny {9./- //取得所需加入的网址字符串
?ieC>cr l.SoiFDd CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
Z~g7^,-t io$fL_R= HKEY hResult;
~2 J!I^J g % 8@pjk RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
=|3*Y0
t "[2^2G //得到欲修改键的句柄
0SDyE MB?762Q SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
D;oX*` S),acc(d RegCloseKey(hResult);
;c# jO:A5 =?1B|hdo //修改注册表相应的值并释放键句柄
'!XVz$C %Wg8dy| }
1n>(CwLG" 'iEu1! t\0 2.给工具条指定用户特定的背景图案
G9ra;.
J+Zp<Wu- void CJhfDlg::OnAddBackGround()
8]% e[ c"S{5xh0& {
rIAbr5CG z~RE}k if(PictureNum==0){
+)e+$
l u'"]{.K>fb AfxMessageBox("没有可应用的选项!");
}m.45n/ S,qEKWyLd return;
6F3FcUL <3[0A;W=1 }
0-IL@Di`F I73=PfS:m CString picture;
zXv2plw( P^m&oH5]EG int sel=m_PicList.GetCurSel();
F+m;y e6I7N?j if(LB_ERR ==sel){
h9l 6AnbJ yz^Rm2$f9 AfxMessageBox("请先选中要应用的选项!");
yo!Y%9 /n8\^4{fP{ return;
Hus.Jfam Amj'$G|+hj }
tE;c>=>t Ox&]{ m_PicList.GetText(sel,picture);
\~I>@SG2W+ 5/m}v'S% //取得所需加入背景图案文件路径
9 kLA57 _+}#
CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
J*+[?FXRL 9qX)FB@'i; HKEY hResult;
w'a3=_nW S0!w]Ku RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
U'0e<IcY 9}aEV 0 V| //得到欲修改键的句柄
Jju^4 Z90]I<a~ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
E5g|*M.+f zAH6SaI$ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
"WzD+<oL b>L?0p$ej RegCloseKey(hResult);
o4nDjFhh 1}3tpO; //修改注册表相应的值并释放键句柄
|Jny0a/0 nG0R1< RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
C!W0L`r ^JAp#?N^9 //得到欲修改键的句柄
>1RL5_US `j!XWh*$ SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
l;}3J3/qq] )8;At'q} SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
jR>`Xz f-Zi!AGh> RegCloseKey(hResult);
heQyz|o 0HN%3AG] //修改注册表相应的值并释放键句柄
-9(pOwN
|m qIvnPaYW }
VE?Aa )
(0=w4 1H \ 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。