自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
I7/X6^/} >(:b\*C VC修改注册表的方法与函数
qc6eqE 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
EU@XLm6 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
)}i;OLw- qtLXdSc 通过修改注册表实现IE换貌
jYi{[** 我们都知道,在注册表中,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()
iJD_qhd7 6*r3T:u3 {
Q($aN- 2lm{: tS if(AddressNum==0){
*2tG07kI Gaxa~?ek AfxMessageBox("没有可应用的选项!");
ZUxlk+o9d !ii'hwFm$ return;
O)i]K`jk </B5^} }
Jb4A!g5C Z/>0P* F CString address;
*)H&n>"e Vn1hr;i] int sel=m_address1.GetCurSel();
7gY^a MW d[Lr`=L; if(LB_ERR ==sel){
GY;q0oQ, 7TN94@kCF AfxMessageBox("请先选中要应用的选项!");
t4E= WJN}d-S=^ return;
h]z>H~.<* ,BCo/j }
+m8gS;'R4 F9&ae*>, m_address1.GetText(sel,address);
={a_?l% '5n67Hl 1 //取得所需加入的网址字符串
(xhwl=MX) :$ "L;" CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
@JL+xfz Q4JvFy0' HKEY hResult;
:n?K[f?LfY =P.m5e< RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
{Z=m5Dy} r$Z_Kwe.|& //得到欲修改键的句柄
_^)<d$R< H!NyM}jsr SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
/ NlT[@T aj:B+}1 RegCloseKey(hResult);
"RF<i3{S j7M[]/| //修改注册表相应的值并释放键句柄
&]? X"K O7AW9*< }
P95A_(T=[ [Nn ?:5" 2.给工具条指定用户特定的背景图案
Cp@'
k;( ?]#U~M<' void CJhfDlg::OnAddBackGround()
%4Thb\ T bqt*d)$ {
]O\Oj6C h^D]@H if(PictureNum==0){
{LLy4m KiJR q> AfxMessageBox("没有可应用的选项!");
M9/c8zZ JM@}+pX return;
Vp'Zm: :2KLziO2 }
UA|A>c x1}7c9nK CString picture;
?(^HjRUY j5EZJ` int sel=m_PicList.GetCurSel();
_IOt(Zb( lc71Pp> if(LB_ERR ==sel){
BWct0= E .kjYIH8 AfxMessageBox("请先选中要应用的选项!");
W5_:Q@ v{}i`|~J return;
>*PZ&"}M }!i#1uHUH: }
x)SW1U3TVx b$f@.L m_PicList.GetText(sel,picture);
(1pxQ%yEA UtF8T6PKdW //取得所需加入背景图案文件路径
;:a>#{N @k!J}O
K CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
oT4A|M 5;5DEMe HKEY hResult;
]i-peBxw Bw31h3yB RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
rSUarfZ< GN4'LU //得到欲修改键的句柄
G 1rsd N;9m&)@JR' SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
<#s=78
g.3 1XAXokxj SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
:D>afC8, (hB&OP5Fne RegCloseKey(hResult);
9U_uw
Rv2 2Qqk?;^1 //修改注册表相应的值并释放键句柄
}hralef #N E*ug.nxy RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
K 9ytot 'E{n1[b //得到欲修改键的句柄
@?$x Dk!;s8}*c SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
+mQMzZZTZ cY|?iEVs) SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
pcd*K) cuO)cj]@e RegCloseKey(hResult);
,&$+{3 Q2c|sK8
//修改注册表相应的值并释放键句柄
W)dQyZ>J ad "yo=%1 }
)Jx +R;Z 8IY n9<L Q`"gKBN1 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。