自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
B,TB3
{ dv.(7Y7.x VC修改注册表的方法与函数
fp[|M 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
'J6
M*vO 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
0el9&l9Ew &8] d }-e 通过修改注册表实现IE换貌
HmiJ~C_v`: 我们都知道,在注册表中,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()
t5#rps\; 7tcPwCc{ {
Kd=%tNp ? P(
ZA if(AddressNum==0){
K)\M5id] " e}3:U5n AfxMessageBox("没有可应用的选项!");
$D}{]MN. Mi/&f return;
WnGGo'Z 2UFv9 }
)e a :Q? ad:&$ CString address;
49w=XJ KN7n@$8YM int sel=m_address1.GetCurSel();
%oq[,h
<X Er+nk`UR_ if(LB_ERR ==sel){
j4;0|zx-i A9kzq_3 AfxMessageBox("请先选中要应用的选项!");
!-,t'GF( FvJd8kV return;
EpFQ|.mQ WC|.g,9# }
rxy&spX il \$@Bn m_address1.GetText(sel,address);
hNd}Y'%V lhw()u //取得所需加入的网址字符串
XwlbJ=mf aEWWFN CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
4( 1(e ;~\MZYs3m HKEY hResult;
[&nh5|f ~d6DD;`K RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
"Q?k'^@ l"2OP6d //得到欲修改键的句柄
`g6h9GC6 uvV;Mlo] SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
v0YG,)_ R8T]2?Q1 RegCloseKey(hResult);
bIEhgiH !X<~-G2)l //修改注册表相应的值并释放键句柄
mGGsB5#w> T9u <p=p }
7?kIVP1r 7g(F#T?;' 2.给工具条指定用户特定的背景图案
o4zM)\;F 4y5UkU9| void CJhfDlg::OnAddBackGround()
)JNSZB *0>mB {
.?!N^_ Ez3 NN1$'"@NL if(PictureNum==0){
!V,{_(LT h<SQL97N AfxMessageBox("没有可应用的选项!");
stk9Ah y;AL'vm9 return;
K%X^n>O7C D*YM[sN` }
8kIR y =n'
4?W@ CString picture;
i7utKj*57 bLd#xXl int sel=m_PicList.GetCurSel();
_dJ{j <1.A=_
M if(LB_ERR ==sel){
qg}O/K ?1[\! AfxMessageBox("请先选中要应用的选项!");
jD`d#R *r$+&8V\n return;
u*#ZXW Hw-Z }
!k/Pv\j/R Kbb78S30 m_PicList.GetText(sel,picture);
!\,kZ|#> e4z1`YLsG //取得所需加入背景图案文件路径
+5&wOgx k!KDWb
CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
-~QHqU. Gsc\/4Wx HKEY hResult;
0sh/|`\ zWb4([P; RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
NSFs\a@1 ~~6^Sh60g //得到欲修改键的句柄
.^m>AKC0cX ryc& n5 SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
"n=vN<8(o V2<?ol SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
lZrVY+D YTjkPj: RegCloseKey(hResult);
]wWPXx[>/ WwUv5GZTW //修改注册表相应的值并释放键句柄
S>0nx ^P C>[fB|^ RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
A,)VM9M_l ,E$@=1) //得到欲修改键的句柄
_C+b]r/E 2"d!(J6}K SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
u]ZqOJXxu wprX!)w<i SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
v
(2GX !xKJE:4/,m RegCloseKey(hResult);
fVM`-8ZTq 2AVa( //修改注册表相应的值并释放键句柄
4j!]:ra X K5<Tg }
A;O~#Chvd 1<<kA:d 7]%Ypv$ 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。