自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
D].!u{## q65KxOf` VC修改注册表的方法与函数
$E3-</ f 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
e*p7(b- 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
zWpJ\/k~ zbK=yOIOd 通过修改注册表实现IE换貌
=; Gw=m( 我们都知道,在注册表中,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()
XL@i/5C[ Aifc0P-H {
\Km!#: n/#zx:d? if(AddressNum==0){
3ny>5A!;2 &Oc^LV$6 AfxMessageBox("没有可应用的选项!");
]|62l+ bVmHUcR0 return;
[G2@[CtY1 S[,! }
z(2pl} <+ UEM~) CString address;
4Gs#_|! qp_lMz int sel=m_address1.GetCurSel();
.gTla kcKcIn{ if(LB_ERR ==sel){
\"Z^{Y[,; AE`X4 q AfxMessageBox("请先选中要应用的选项!");
*,<A[XP vdw5T&Q{{C return;
z<aB GG D/)wg$MI }
's> &5puGnTZ m_address1.GetText(sel,address);
xY9#ouF Fb=(FQ2Y? //取得所需加入的网址字符串
1BT]_ cP *I6z;.# CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
|57u ; OE' ?3S HKEY hResult;
}U3+xl6g rx2?y3pv RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
%@
UH,Ew hw! l{yv //得到欲修改键的句柄
C'&)""3d _R&mN\ey5 SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
`i5U&K. 7 .GcIwP'aU- RegCloseKey(hResult);
i
,Cvnp6Lv eKjmU | H //修改注册表相应的值并释放键句柄
~!UC:&UKo Yt&Isi
+ }
Qt` hUyL !>QS746S@ 2.给工具条指定用户特定的背景图案
xIu# Py*( % void CJhfDlg::OnAddBackGround()
M)S(:Il6Xx z~&uLu {
-^sW{s0Rc `roos<F1D if(PictureNum==0){
<
kyT{[e+6 )!6JSMS AfxMessageBox("没有可应用的选项!");
iUSP+iC, },58B return;
0K/Pth"* (:9yeP1 }
k(LZ,WSR {!!df.h CString picture;
E;!pK9wL| |^fubQs;2 int sel=m_PicList.GetCurSel();
<xM$^r) DfYOGs]@ if(LB_ERR ==sel){
AGaM
&x= BS3Aczwk AfxMessageBox("请先选中要应用的选项!");
,=sbK?& mGx!{v~i& return;
\7b-w81M- +B(x:hzY9 }
{UqS q ;W%nBdE6| m_PicList.GetText(sel,picture);
(NfP2E|B aAM!;3j]B` //取得所需加入背景图案文件路径
F6>K FU8 .*XELP=BT CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
EUBJnf:q CTawXHM HKEY hResult;
WP7RX|7 eu=G[> RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
:"m~tU3& |OW/-&) //得到欲修改键的句柄
}/tT=G]91 337y,; SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
S1jI8 #z}_ =5:L#` . SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
z4t.-9(C 7AwV4r*: RegCloseKey(hResult);
|-Rg]. =$ bJ`GpJ //修改注册表相应的值并释放键句柄
fP 1V1ao PJd7t%m; RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
Pdgn9 3a9%djGq //得到欲修改键的句柄
5)712b(& 758`lfz=_ SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
nW)-bAV< =^liong0 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
lMkDLobos y 98v RegCloseKey(hResult);
s|er+-' tW<i;2 l //修改注册表相应的值并释放键句柄
R7)\wP*l5 5zk<s`h }
!`kX</ha. 7#
>;iGuz %v}SJEXFp 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。