自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
a!]QD` k*+ZLrT VC修改注册表的方法与函数
G6g=F+X2 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
6xQe!d3>s3 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
fP4IOlHkE a5g{.:NfO 通过修改注册表实现IE换貌
RwLdV+2\R` 我们都知道,在注册表中,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()
^oZs&+z L,ey3i7a\ {
61;5Yo =kkA if(AddressNum==0){
0BZOr-i #~qp8
w AfxMessageBox("没有可应用的选项!");
D&lXi~Z%. -D':7!@ return;
lfG&V +S1 wtick~) }
[~%;E[ky$ ,oVBgCf CString address;
?;QKe0I^ n`2"(7Wj int sel=m_address1.GetCurSel();
5/VB'N#7s nylIP */ if(LB_ERR ==sel){
A>,fG9pR +mF 2yh AfxMessageBox("请先选中要应用的选项!");
aD`e]K ^L zEL[%(fnc return;
Ljs(<Gm)- p%qL0
}
B=xZkc %Q4w9d m_address1.GetText(sel,address);
w%u[~T7OI
x a,LV //取得所需加入的网址字符串
]=$ay0HC
S6:gow(wU CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
N.cRZm% WK5bt2x HKEY hResult;
EjCs ~_\2\6%1^n RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
@Bwl)G!| !a&F:Fbm //得到欲修改键的句柄
?UZyu4O% GM92yi!8 SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
D#AxgF_He Sk%|-T(d$ RegCloseKey(hResult);
Ceb i9R[ 1j-i nj` //修改注册表相应的值并释放键句柄
h$h`XBVZe; "N"k8,LH }
E8 )*HOT_T Wm/k(R`O< 2.给工具条指定用户特定的背景图案
-$p-o
Z) Zdz GJ[$ void CJhfDlg::OnAddBackGround()
4vJIO{m mTbPzZ4 {
LKG|S<s tH!z7VZ if(PictureNum==0){
RH 0a\RC!G +N!{(R:"v} AfxMessageBox("没有可应用的选项!");
yXmp]9$ Ct33S+y return;
j;vaNg|vQ 5~5ypQj }
?':'zT t;6/bT- CString picture;
~Q]M_,`M cK/odOi int sel=m_PicList.GetCurSel();
>QPS0Vx[ $~\qoW< if(LB_ERR ==sel){
D(GHkS*0q >FhBl\oIi AfxMessageBox("请先选中要应用的选项!");
X;g|-< >,1LBM|0u return;
Y5pNKL {1ceF }
(]dZ+"O{ <H#K `|Ag m_PicList.GetText(sel,picture);
j3F=P (J#3+I //取得所需加入背景图案文件路径
4 ETVyK|
nwVtfsb CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
] lTfi0}g_ )9,"~P2[R HKEY hResult;
Hn.UJ4V `Nr7N#g+u RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
Qgi:q "+_0idpF //得到欲修改键的句柄
6<6_W# iDN,}:<V SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
)2hoO_l: m#p^'}]!; SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
D.f=!rT7E7 wxrT(x| RegCloseKey(hResult);
0^^i=iE-u YO61 pZY //修改注册表相应的值并释放键句柄
aT[7L9Cw Z2
4 m RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
ay.IKBXc $r_ gFv //得到欲修改键的句柄
i{0_}"B #a:C=GV;4 SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
N<%,3W_-_ : Tl?yGF SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
9NAlgET s q$|Pad[ RegCloseKey(hResult);
6Rj
X $x*GvI1D //修改注册表相应的值并释放键句柄
rY.:}D c i>=45@J }
zq&lxySa gw^+[}U# !8].Z"5J 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。