自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
ig!7BxM)<h /+|#^:@ VC修改注册表的方法与函数
GTl
xq%?b 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
w$ fJ4+ 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
zpjqEEY; {38bv.3' 通过修改注册表实现IE换貌
o{WyQ&2N 我们都知道,在注册表中,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()
iG<Som l"+Jc1\ X {
SA"8!soY3 J'T=q/ if(AddressNum==0){
_NZ@4+aW ~nY]o"8D AfxMessageBox("没有可应用的选项!");
ZH 6\><My l.+yn91%> return;
fV\]L4% DN] v_u+} }
"TOa=Tt{, kg97S CString address;
d+fSoSjX8 ,,4
GNbBC int sel=m_address1.GetCurSel();
H17-/|-;0! .qv'6G if(LB_ERR ==sel){
2kh"8oQ m#7*:i&@Y AfxMessageBox("请先选中要应用的选项!");
b #fTAC;< Ea $aUORm return;
WT\<.Py YN/}9. }
[g|Y7.j8 &qM[g9 m_address1.GetText(sel,address);
98XVa\|tl >SbK.Q@ei //取得所需加入的网址字符串
2?q(cpsN "sUyHt -& CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
ti @kKz /~p+j{0L3W HKEY hResult;
Kg\R+i@#< K }$&:nao RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
3L5r*fa !ZXUPH //得到欲修改键的句柄
pv)`%< cmwPuK$ SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
w n|]{Ww35 1GCzyBSbb RegCloseKey(hResult);
Vr.Y/3N&' dtt ~ Bd //修改注册表相应的值并释放键句柄
x2Lq=zwJ &HZmQ>!R D }
s%4M$e RW'nUL?_\ 2.给工具条指定用户特定的背景图案
]; $] G- 5*g]qJF void CJhfDlg::OnAddBackGround()
Ah69
_>N`S xg@NQI@7 {
),}AI/j;zY ?/hZb"6W if(PictureNum==0){
yR5XJ;Tct SkQswH AfxMessageBox("没有可应用的选项!");
EbNd=Z'J pc]J[ S?P return;
sBX-X$*N ^Q<mV*~ }
]b?9zeT*'l @C_KV0i CString picture;
ZJW[?V\5= >/$Fh:R- int sel=m_PicList.GetCurSel();
@@G6p($ -e GL) M if(LB_ERR ==sel){
Q
n)d2-< $tqJ/:I AfxMessageBox("请先选中要应用的选项!");
R\3VB NX.g K$ }a8rH return;
5Qwh(C^H AM"jX"F9/ }
Io`P,l: qy1F*kY m_PicList.GetText(sel,picture);
hB;VCg8 HvwYm.$zE //取得所需加入背景图案文件路径
!%(h2]MQ Fh|#u:n CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
SymwAS+ R7jmv n HKEY hResult;
Ga>uFb}W~ K BE Ax3 RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
B;6]NCxD 9LnN$e //得到欲修改键的句柄
X!hIwi A,t k*rZ*sSp SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
{PU!=IkTS 'wasZ b<^ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
UB`ToE|Ii m><w0k?t RegCloseKey(hResult);
N7r_77%m0 pW0dB_ //修改注册表相应的值并释放键句柄
:e1o<JgPt ~5
N)f
UI\ RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
-/C)l)V} O43YY2 //得到欲修改键的句柄
$q?$]k|M` Wm~` ~P SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
d$ACDX2 0-Y:v(|. SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
+yob)% ,fDEz9-, RegCloseKey(hResult);
`^JJ&)4iv n"PJ,ao //修改注册表相应的值并释放键句柄
[D"t~QMr %=we`& }
9h90huyKF #m{{a]zm^ B5V_e!*5F* 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。