自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
C[0*>W8o dd{pF\a VC修改注册表的方法与函数
,|u^-J@
注册表是由树干和键组成的,对注册表的修改便是对键的修改。
%hnv
go:^g 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
gp`H>Sn.| m.|__L 通过修改注册表实现IE换貌
md. #n 我们都知道,在注册表中,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()
`Fn6*_n ja1WI {
HC[)):S* U.mVz,k3 if(AddressNum==0){
Za4X
; iT;~0XU7F AfxMessageBox("没有可应用的选项!");
[@RJ2q$ N~/D| ?P~2 return;
NrTK+6 z 1>wQ&{ }
g~#HiBgWq[ ZM$}Xy\9 CString address;
FR%u1fi 72;4 int sel=m_address1.GetCurSel();
A"$UU6Z4 Aqp$JM
> if(LB_ERR ==sel){
FdZG%N>Z :p6.v>s8 AfxMessageBox("请先选中要应用的选项!");
bm Hl\? ;WG6|QgV?- return;
6.|Qyk* wy)I6`v }
?oKY"C8/ xdqiogu e m_address1.GetText(sel,address);
E,fG<X{ @jvF[wi; //取得所需加入的网址字符串
kCoTz"Z- qDzd_E@aR CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
"h >B`S XX@@tzN HKEY hResult;
EoOB0zo}Y+ `fA|])3T RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
&-s/F` X?Yp=%% //得到欲修改键的句柄
1`;,_>8 5*he SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
[p7cgHSMt }RT#V8oc RegCloseKey(hResult);
'=^$;3Z l'#P:eW //修改注册表相应的值并释放键句柄
{8YNmxF# <l,Kg
'v }
2G4OK7x e?"XMY 2.给工具条指定用户特定的背景图案
k-
?:0 'I tsu~fza void CJhfDlg::OnAddBackGround()
6,D)o/_ Uz&XqjS {
= @UgCu>= N8s2v W if(PictureNum==0){
Oy,`tG0 JkiMrpkuk AfxMessageBox("没有可应用的选项!");
ls<7Qe"a 'aFj yY?% return;
/1Q
i9uit 4kZ9]5#. }
X 9lh@`3 f T&>L CString picture;
k~<b~VcU /M.@dW7
w int sel=m_PicList.GetCurSel();
p%_m!
Ul41RNy) if(LB_ERR ==sel){
f-!A4eKe $Bd13%>) AfxMessageBox("请先选中要应用的选项!");
?uq7K"B Wg3\hv29 return;
~S='~ g) jZ;dY~fE }
jw^Pt~@ -wqnmK+G m_PicList.GetText(sel,picture);
2?)bpp$WZ xq.HR_\ //取得所需加入背景图案文件路径
rTR4j>Ua~ Ai 9UB=[R CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
[^U#ic>cT %kcyE<c HKEY hResult;
D)u 9Y QnWM<6xK" RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
<`~zKFUQ[ ]B;\?Tim //得到欲修改键的句柄
`9+>2*k 2L'vB1` SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
wGXnS"L! 8\85Wk{b SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
[ NSsT>C X)tf3M
{J@ RegCloseKey(hResult);
^YpA@`n bg8<}~zg //修改注册表相应的值并释放键句柄
`?X=@ )AX0x1I|E RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
6"d^4L? H|uvc vf //得到欲修改键的句柄
-RSPYQjz <NLor55.] SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
*TjolE~o
-\.'WZo` SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
A=v^`a03I S;582H9D RegCloseKey(hResult);
k]vrqjn Q I^5T9}>Q //修改注册表相应的值并释放键句柄
]G0`W6;$] YEEgDw]BQ }
QTN
_Z#' '}`|QJ V
ifQ@ 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。