自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
!j'guT&9] rr6"Y&v VC修改注册表的方法与函数
ri;r7Y9V9` 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
/3;=xZq 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
~M(pCSJ[ 0MhxFoFO 通过修改注册表实现IE换貌
c'[( d5^| 我们都知道,在注册表中,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()
{)GQV`y _c,&\ wl$ {
F.&*D~f 0$(jBnE if(AddressNum==0){
@u7%B}q7: T&e%/ AfxMessageBox("没有可应用的选项!");
i@%L_[MtA lK 9s0t' return;
/Ir 7
DZK !vi4*
@: }
&s_}u%iC `jt(DKB+J CString address;
ZlUFJ*pk ">0 /8] l int sel=m_address1.GetCurSel();
g!z8oPT FxMMxY,*% if(LB_ERR ==sel){
SlM>";C\ zbdOCfA; AfxMessageBox("请先选中要应用的选项!");
vHoT@E#}' I-j(e)P(o_ return;
P'KY.TjWb p` ^:Q*C" }
+X{cN5Y K oTZo[T@zRx m_address1.GetText(sel,address);
t4*aVHT (p}9^Y //取得所需加入的网址字符串
(gv=P>: 3Bu D/bs CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
dICnB:SSB w`2_6[,9 HKEY hResult;
8yNRxiW: #p;4:IT RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
5QCw5N ]M02>=1 //得到欲修改键的句柄
n C\(+K1% eU<]h>2 SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
gogl[gHO EVby 9! RegCloseKey(hResult);
lU>)n >:(6{}b //修改注册表相应的值并释放键句柄
3g4vpKg6c $L $j
KNwf }
hA$c.jJr.Z Uj
y6vgU; 2.给工具条指定用户特定的背景图案
+^o3}` [0(
E>vm void CJhfDlg::OnAddBackGround()
+sV# Z, Lcm~QF7cd {
Zi15wE bUEt0wRR if(PictureNum==0){
w%!k?t,*] (dw3'W AfxMessageBox("没有可应用的选项!");
MV:<w3! Z &ua,:5 return;
wt3Z?Pb !ds"88:5^ }
t(LlWd rZwf%} CString picture;
3:z4M9f >*ha#PE int sel=m_PicList.GetCurSel();
s0`]!7D< v>yGsJnV' if(LB_ERR ==sel){
3<Pyr-z h Gff[c%I AfxMessageBox("请先选中要应用的选项!");
1GyA QHx, ~Iu21Q(* return;
;NN(CKZ9A Q:Nwy(,I }
\I`=JKYT nOL 25 Y: m_PicList.GetText(sel,picture);
: Oz7R: [f0oB$ //取得所需加入背景图案文件路径
vb80J<4 o 0cc+ CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
?Pok-90 d~xU?)n) HKEY hResult;
OL6xMToP 1zEZ\G RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
nP3;<*T P0 Ke;X3j ]` //得到欲修改键的句柄
Wvzzjcr(j Bb2r95h}^ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
^7^bA DRFuvU+e SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
~_^o?NE, 1Ag ;s RegCloseKey(hResult);
W;)FNP|MT Rs(CrB/M //修改注册表相应的值并释放键句柄
<PuB3PEvV spoWdRM2 RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
,VcDvZ7 &j~|3 //得到欲修改键的句柄
c#4L*$ViF +e3WwUx SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
IP4b[|ef *Yk8Mj^_h SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
K
{1ZaEH Vlxb<$5Nh RegCloseKey(hResult);
p9] 7g% _XO)`D~ //修改注册表相应的值并释放键句柄
4>wIF }\ O]r3?= }
EX_sJ c aSj1P/A :"+UG-S$6 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。