自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
/XC;.dLA# K
oL%}u& VC修改注册表的方法与函数
0c{Gr 0[> 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
Xek E#?. 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
m./*LXU %k~C-+ 通过修改注册表实现IE换貌
lK 9s0t' 我们都知道,在注册表中,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()
csm?oU niz E ,Dlaq {
Y-?51g [u e1Dj0s?i~K if(AddressNum==0){
NdaM9a#TZ +# A|Zp< AfxMessageBox("没有可应用的选项!");
P/HHWiD`D S:DcfR=a return;
Gu<W:n[ qrOB_Nz }
ggzAU6J Gf!t< =T CString address;
4{uJ||! jAsh
int sel=m_address1.GetCurSel();
yRSy(/L^+ 4ZSfz#<[z if(LB_ERR ==sel){
$XtV8 @faF`8LwA AfxMessageBox("请先选中要应用的选项!");
qLU15cOM Ji)%Y5F return;
1j_aH#Fz: Tm'l N5}&9 }
6uv'r;U] dpl"}+ m_address1.GetText(sel,address);
$,!dan<eA &^"s=g. //取得所需加入的网址字符串
N GX-'w 3g4vpKg6c CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
~`a#h# ~{kA) : HKEY hResult;
W`
6"!V ~QQEHx\4zZ RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
W\ZV0T;<] lUy*549, //得到欲修改键的句柄
_Y:Ja0, T=iZ9w SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
bs4fyb OoA5!HEh RegCloseKey(hResult);
Z &ua,:5 OdtbVF~ //修改注册表相应的值并释放键句柄
3(XHF3q ^$T!@+: }
tOp:e KN I{Y
{ 2.给工具条指定用户特定的背景图案
`:B DT1i2! void CJhfDlg::OnAddBackGround()
_
cHV3cz H_xQ>~b {
A$$R_3ne %<bG%V( if(PictureNum==0){
>V ]*mS%K J_((o AfxMessageBox("没有可应用的选项!");
u:qD*zOq W6!4Qyn return;
b*F :l# dcc%G7w }
yScov)dp( _g/TH-;^ CString picture;
Ot8S'cB1,$ )b:~kuHi int sel=m_PicList.GetCurSel();
3
MI ) E
EY[Q% if(LB_ERR ==sel){
xs83S.fHg !xx>
lX5 AfxMessageBox("请先选中要应用的选项!");
Ty,)mx){) _|5FrN return;
7.Kjg_N#Tr e*'|iuDrY }
4jyr\=42F' wshp{ y m_PicList.GetText(sel,picture);
E]U3O>hf +H m+#o //取得所需加入背景图案文件路径
M&BM,~ ~jCpL@rS CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
V?L$ys b&V]|Z( HKEY hResult;
&j~|3 V3hm*{ON RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
:\w[xqH #Ot*jb1 //得到欲修改键的句柄
R*TGn_J` uJ!s%s2g SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
G:6$P%. %JA&O SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
>[P7Zlwv4 ws=9u- RegCloseKey(hResult);
p9] 7g% 2ZzD^:V[} //修改注册表相应的值并释放键句柄
+h vIJv ? l!2Z`D_MD RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
U(&nh? '|A5a+[ //得到欲修改键的句柄
=QKgsgLh q9]^+8UP SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
{ALBmSapK" :"+UG-S$6 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
meVVRFQ2+ QmkC~kK1. RegCloseKey(hResult);
>7Sl(
UY- 6+f>XL#w //修改注册表相应的值并释放键句柄
'rq#q)1MT E{]|jPdr }
"VVR#H}{ ,IZxlf% gBiQIhz 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。