自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
AQU: 0 JNCtsfd VC修改注册表的方法与函数
]Y!
Vyn 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
#$T"QL@ 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
md
LJ,w?{ <R%6L& 通过修改注册表实现IE换貌
\>azY
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()
1caod0gor [m&ZAq {
q9]L!V9Rv 7u0R=q if(AddressNum==0){
r}Av" HaUo+,= AfxMessageBox("没有可应用的选项!");
%E_{L @y&,e,3! return;
X}^gmu<Vla &h[}5 }
eZ$1|Sj]j {-qTU6 CString address;
k=
1+mG Jtk(yp{Zz int sel=m_address1.GetCurSel();
[p<[83' ] ~]+
jn if(LB_ERR ==sel){
e:occT &cE,9o%FZ AfxMessageBox("请先选中要应用的选项!");
a}hM}U! {627*6, return;
z9w.=[Io Uwa1)Lwn }
(j"MsCwE 5aQg^f%\ m_address1.GetText(sel,address);
yt,;^o^ fdHxrH>* //取得所需加入的网址字符串
y5h[^K3 oPZ4}>uV CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
y Dw!u[: sRnMBW. HKEY hResult;
X.|0E87 $4,6&dwg RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
#0H[RU? l))IO`s=_ //得到欲修改键的句柄
63$m& ]x essW,2,rjC SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
;Bi{;>3 ?Qk#;~\yB RegCloseKey(hResult);
)CQ}LbX Zy 3Re\ T //修改注册表相应的值并释放键句柄
Ev#aMK 1^dWmxUZH }
[hbIv Wno5B/V 2.给工具条指定用户特定的背景图案
7C^ nk
z OSk9Eb4ld void CJhfDlg::OnAddBackGround()
h (2k;M^s gp2)35 {
PD4E&k JnJz{(c
if(PictureNum==0){
KYN{iaj }FVX5/.' AfxMessageBox("没有可应用的选项!");
g7i6Yj1 l0)uu4| return;
(7,Awf5D~ wYG0*!Vj }
\>k+Oyj 7i/Cax CString picture;
c
@R6p+ "dTXT int sel=m_PicList.GetCurSel();
~yN,F pD yjzNU5F if(LB_ERR ==sel){
Xi.?9J`@ ]+P&Y: AfxMessageBox("请先选中要应用的选项!");
W9"I++~f *6tN o-)^ return;
C"<@EMU9 t`B']Ac;T }
4uA^/]ygo :~Y$\Ww(~ m_PicList.GetText(sel,picture);
R3A^VE;qP XT"c7]X //取得所需加入背景图案文件路径
Gy%e%' 1O4"MeF CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
0
HmRl Q2Rj0E` HKEY hResult;
w3D_ c~ K-3 _4As RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
HxaUVg0 z^.0eP8\j //得到欲修改键的句柄
y
rk#)@/m ~JpUO~i/ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
5@ug1F& wn&2-m*a SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
mZyTo/\0 .EO1{2= RegCloseKey(hResult);
L8ke*O$ q0wVV //修改注册表相应的值并释放键句柄
(6nw8vQ HenJlo RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
~@lNBF X[<9+Q-& //得到欲修改键的句柄
at!?"u :F&WlU$L SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
)w-?|2-w5 CCV~nf SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
Rd)QVEk>SD UZ#2*PH2E RegCloseKey(hResult);
>YLm]7v} s9iM hCu| //修改注册表相应的值并释放键句柄
\BL9}5y @#apOoVW> }
Sls>
OIc /Ny&;Y +Sfv.6~v 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。