自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
E *F*nd]K mZ~ qG5@/F VC修改注册表的方法与函数
}I]j&\ 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
n/QfdAg 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
q!6|lZ B3 ^GMJ~[] 通过修改注册表实现IE换貌
gmh5
%2M 我们都知道,在注册表中,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()
KRYcCn EgTFwEj {
ep+ (1 CJw: if(AddressNum==0){
4%
HGMr cjuZBFl AfxMessageBox("没有可应用的选项!");
^=EjadVQ 'p%=<0vrr return;
ZJ;LD* *'D=1{WZ! }
z[fB!O w
|_GV}#_ CString address;
\6sqyWI
% zZ%DtxUoU. int sel=m_address1.GetCurSel();
A\K,_&x1Z )^4hQ3BS if(LB_ERR ==sel){
NYBe"/}GS KOjluP AfxMessageBox("请先选中要应用的选项!");
gQ37> 0rD#s{? return;
57~Uqt >1 @Ltvm }
G.g|jP'n 6v to++ m_address1.GetText(sel,address);
y&"!m} !X|k"km" //取得所需加入的网址字符串
mwh{ "FL( oid[syPB CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
$;2)s}ci o(*F])d; HKEY hResult;
"O*x' XhN |; $Bb866/ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
J$F nm\ c<wavvfUo //得到欲修改键的句柄
P;vxT}1 e+'%!w"B SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
Z%}4bJ B0d%c&N${ RegCloseKey(hResult);
G@gh#[b <} ,1Ncl //修改注册表相应的值并释放键句柄
x4m 5JDC O:Va&Cyj* }
fc@'9-pt G?`-]FMO 2.给工具条指定用户特定的背景图案
["y6b*;x 9#7J:PfZ< void CJhfDlg::OnAddBackGround()
zB*euHIqZ L@RIZu>ZW+ {
hN -v]Qhf&> if(PictureNum==0){
y,E.SB s)zJT AfxMessageBox("没有可应用的选项!");
}`xdWY dAc ?O-~ return;
OfTfNhpK 5RF4]$zT }
0,_b) ESTM$k}X
CString picture;
}7eh F6 VO=!8Yx[ int sel=m_PicList.GetCurSel();
qP3q [dB$U}SEj if(LB_ERR ==sel){
*6Q|}b[qcD O0T/#<Cn! AfxMessageBox("请先选中要应用的选项!");
~`qEWvPn |7"$ w%2 return;
u%3i0BajY 5\bJR0I@ }
^C/ !^w
E/ m_PicList.GetText(sel,picture);
x5h~G $A2n{ //取得所需加入背景图案文件路径
&<3&'*ueW _ \D"E>oM CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
Y-)xTn ${I*nh>= HKEY hResult;
u.,Q4u|! .@#A|fgv RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
6cz/n8M g z.36;yT/ //得到欲修改键的句柄
X^s2BW o(!@7Lqq SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
a~PK
pw2% ;f1qLI SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
xb:&(6\F }^xE|~p RegCloseKey(hResult);
u5B:^.:p dtZE67KS //修改注册表相应的值并释放键句柄
4;<ut$G [1_A8s){u RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
Vi*e@IP/ 8R/dA<Ww //得到欲修改键的句柄
NI aFI( ;=4Xz\2 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
*bd[S0l $,3J7l3 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
= &tmP -C-yQ.>\T# RegCloseKey(hResult);
jQS 6J+F] M f~}/h //修改注册表相应的值并释放键句柄
7f3O ]p7jhd= }
T/pqSmVpM ^v&D;<&R 5]5 KB; 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。