自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
R;`C;Rbf a/dq+ VC修改注册表的方法与函数
SCo; Ek 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
(.N!(;G 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
EiCEB;*z|d L{Kl! 通过修改注册表实现IE换貌
S0mzDLgE 我们都知道,在注册表中,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()
T1W H i16kPU
{
c[X:vDUX ,#Mt10e{ if(AddressNum==0){
`e^sQ>rDI WWG+0jQ9 AfxMessageBox("没有可应用的选项!");
dBEm7.nh 9N V.<&~ return;
p d(W(-`8! %hCd*[Z}j }
$c }-/U 8 l" +q&3Zx CString address;
.T\_4C E8"$vl&c] int sel=m_address1.GetCurSel();
L=wpZ`@
y XN}^:j_2 if(LB_ERR ==sel){
P9jPdls 3V%ts7: a AfxMessageBox("请先选中要应用的选项!");
|VQmB/a <P.'r,"[ return;
U*:E|'> ]'5 G/H5?; }
=SVb
k Js/QL=, m_address1.GetText(sel,address);
tZan1C%p> <BjrW]pM //取得所需加入的网址字符串
][`% vj9r _kT{W] CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
RJ OW#e : aDda&RM HKEY hResult;
uS7kkzt-x \h5!u1{L RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
Sjo7NR^#e D-4{9[ //得到欲修改键的句柄
~Aw.=Yi= OZ,Xu&N SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
6os{q`/Q]) ($'5xPb RegCloseKey(hResult);
RZP7h>y6@ /_</m?&.U& //修改注册表相应的值并释放键句柄
I'0{Q`} l;i/$Yu7 }
)W*A[c
2 #Fz/}lO 2.给工具条指定用户特定的背景图案
{[dY$
Cf>(,rt}; void CJhfDlg::OnAddBackGround()
%uDH_J|^ "NtY[sT{V {
Eo>EK> v-DZW, if(PictureNum==0){
{Bz E 0sI7UK`m AfxMessageBox("没有可应用的选项!");
b)@rp uF+0nv+ return;
n50WHlMtt DB3qf>@? }
nM|F
MK^ ~3Y4_b5E CString picture;
c3.;o ym_p49 int sel=m_PicList.GetCurSel();
tmi)LRF
H u(i=-PN_< if(LB_ERR ==sel){
iF
Zq oz Oi<yT"7 AfxMessageBox("请先选中要应用的选项!");
5i+cjT2 XIn,nCY; return;
%Ni"*\ ?!y<%&U }
;OZl'
. %` m UUNR, m_PicList.GetText(sel,picture);
n x{MUN7 dozC[4mF //取得所需加入背景图案文件路径
VS@e[, %~L"TK`? CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
<iB5& ?[7KN8$ HKEY hResult;
b8E7/~<z3 Bk[C=< X
RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
0+e
6ZfL-E{ //得到欲修改键的句柄
Kr;;aT0P \rd%$hci SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
+QNsI2t;r r1:CHIwK SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
j4I ~ rn/~W[ RegCloseKey(hResult);
.3&(Y ")<5VtV //修改注册表相应的值并释放键句柄
/36gf %j.n^7i]^: RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
inh
J|pe" GSW%~9WBa //得到欲修改键的句柄
$O%"[w sou~m,# SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
SDB \6[D O]'2<; SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
RL3*fRlb %SuELm RegCloseKey(hResult);
~r~YR= iBI->xU[U //修改注册表相应的值并释放键句柄
sNM ]bei ~d\^ynQ }
No`*-> R hZlHY9[t? =#=}|Q} 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。