自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
D7c+/H@PF 7
Rc/<,X VC修改注册表的方法与函数
ucbtPTFYvr 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
8
-w|~y'; 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
*Tmqs@L FRQkD%k 通过修改注册表实现IE换貌
.mOm@<Xdg 我们都知道,在注册表中,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()
Oo
^AE !A14\ {
1k"i"kRM vi[~Qt if(AddressNum==0){
h,K&R8S pTJ_DH AfxMessageBox("没有可应用的选项!");
]eTp?q%0 ol`q7i. return;
0\eSiXs Cq-99@&; }
x/0x&la z_8Bl2tl CString address;
*/vid(P77 Z$35`:x&h int sel=m_address1.GetCurSel();
"kucFf f 'z+Pa^)v if(LB_ERR ==sel){
FE#|5;q. ONc#d'-L AfxMessageBox("请先选中要应用的选项!");
]]5(:>l TBHd)BhI. return;
0
eOdE+ H/*i-%]v+( }
")fgQ3XZ -ilhC Y@M m_address1.GetText(sel,address);
vJW`aN1<I3 h}S2b@e| //取得所需加入的网址字符串
4&6cDig7*2 IEfm>N-] CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
.&K?@T4l [y<s]C6E HKEY hResult;
9(bbV5} $A(3-n5= RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
2 m72PU<. dE(d'*+a //得到欲修改键的句柄
p%OVl[^jp 9g$fFO SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
g](&H$g &d"scM5 RegCloseKey(hResult);
>q&e.-qL Kke
_?/fT //修改注册表相应的值并释放键句柄
V7+/|P_ 5+)_d%v=6! }
O /h1ew /4+*!X 2.给工具条指定用户特定的背景图案
lDs C>L-F 6-nf+!#G void CJhfDlg::OnAddBackGround()
uYd_5
nw g~OG~g@ {
uLN.b339 4XeO^# if(PictureNum==0){
|J^I8gx+ nH[>Sff$ AfxMessageBox("没有可应用的选项!");
0s.4]Zg>5 m# ^).+ return;
ldG$hk' 2$gFiZ }
t"6u AP?m,nd6 CString picture;
?W&ajH_T \i)@"} int sel=m_PicList.GetCurSel();
<(us(zbk] \/r]Ra if(LB_ERR ==sel){
=e6!U5
f A}1:fw\Fn3 AfxMessageBox("请先选中要应用的选项!");
#|Je%t}~ [bN_0T.YI return;
<H1e+l{8$ CTc#*LJx>j }
3LVL5y7| f{'NO`G m_PicList.GetText(sel,picture);
JJP!9< ?;go5f+X //取得所需加入背景图案文件路径
h0VeXUM;. sWgzHj(c CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
/(i~Hpp S'sI[?\x HKEY hResult;
J!zL)u| o1Wf#Zq RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
j!a&l dp:5iuS //得到欲修改键的句柄
?gXdi<2Qn QRER[8]r$ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
K*"Fpx{M e4cWi SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
PC)V".W1 PS??wlp7 RegCloseKey(hResult);
mpl^LF[ `P;uPQDzZ3 //修改注册表相应的值并释放键句柄
[wUJ~~2# mS]soYTQ RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
'W[Nr CWnRRZ}r //得到欲修改键的句柄
@OC*:?!4 /?6 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
c5{3 SxM5'KQ SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
w)gMJX/0yw $tebNiP RegCloseKey(hResult);
xllmF)]*Y 7L!q{%} //修改注册表相应的值并释放键句柄
;B"S*wYMN &F +hh{ }
{^K&9sz e73zpF iP?=5j=4 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。