自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
Ott6y #~*v##^vFH VC修改注册表的方法与函数
0#,a#P 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
rbw$=bX} 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
_4ag-'5 ;H_/o+ 通过修改注册表实现IE换貌
X 'Ss#s>g 我们都知道,在注册表中,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()
_bFUr 3db{Tcn\@] {
q2qi~}l D*XrK0#Z` if(AddressNum==0){
YG "Ta|@5 BuJo W@) AfxMessageBox("没有可应用的选项!");
DBT4 W/ z:Ml;y return;
=kjKK /k#-OXP~ }
o>el"0rn.h l& :EKh CString address;
/sE,2X*BT eA/n.V$z int sel=m_address1.GetCurSel();
D tsZP
( ]P4WfV
d if(LB_ERR ==sel){
<Vat@e gD,&TW AfxMessageBox("请先选中要应用的选项!");
vCzZjGBY C"hN2Z!CD| return;
j{@O%fv= *Rgr4-eS }
wj)LOA0 |LHJRP-Z m_address1.GetText(sel,address);
ZlT }cA/n LCF}Y{ //取得所需加入的网址字符串
]z'&oz R+ * ; [ CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
7- B.<$uC oV|O`n HKEY hResult;
l=@ B 'a X+hHE kJ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
5E!C?dv(z VUb>{&F[ //得到欲修改键的句柄
e~r/!B5X uYJS=NGNA SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
&?<uR)tl @Jt$92i5PS RegCloseKey(hResult);
Z}W{ iD{ T(J'p4 //修改注册表相应的值并释放键句柄
]l,BUf-O L^J4wYFTO }
"J VIkC L9GLjRp- 2.给工具条指定用户特定的背景图案
gf|uZ9{ F%OP,>zl void CJhfDlg::OnAddBackGround()
0w?da~ (q)}`1d' {
8 Rx@_ 6h 0qtXn- if(PictureNum==0){
{)YbksrJ{ 4TtC~#D: AfxMessageBox("没有可应用的选项!");
O-?rFNavxp g4K+AK return;
i:lc]B X+X:nL.t }
.OPknC *?)MJ@ CString picture;
m`yvZ4K! 3efOgP=L int sel=m_PicList.GetCurSel();
byHc0ktI\ v{u3[c
if(LB_ERR ==sel){
b<h((]Q>^ i~@gI5[k+ AfxMessageBox("请先选中要应用的选项!");
<Q[%:LD H.5
6 return;
u
Ie^Me {K^5q{u }
|G j.E P,v7twc0M m_PicList.GetText(sel,picture);
7Cz~nin>7 B=SA
+{o //取得所需加入背景图案文件路径
+a,SP
pPReo) CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
b
74!Zw _i=*0Q HKEY hResult;
0s n$QmW: FFT)m^4p. RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
:~-: Agcss20. //得到欲修改键的句柄
"~r<ZG ,!=
sGUQ) SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
> ,6 oj 8r* SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
2&hv6Y1 {`HbpM<=m] RegCloseKey(hResult);
LkbD='\= CL<-3y* //修改注册表相应的值并释放键句柄
757&bH|a $z=a+t * RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
yg\QtWWM 7%h;To-<6 //得到欲修改键的句柄
vJE=H9E #X(2 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
g[cnaS|? '4,?YcZ?S SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
_L,~WYRo xQR/Xp!h RegCloseKey(hResult);
f6r!3y L15)+^4n //修改注册表相应的值并释放键句柄
Tzd#!Lvm:, EU(e5vO }
r^k+D<k[7 f2.=1)u. ("`"?G 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。