自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
u.mJQDTH QW$G VC修改注册表的方法与函数
@y='^DQ* 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
9:ze{ c $ 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
_A+s)]} v1BDP<qU2 通过修改注册表实现IE换貌
jT8#C=a7 我们都知道,在注册表中,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()
yRSTk2N@ biSz?DJ> {
MaRi+3F zo +nq%= if(AddressNum==0){
[q/Abz'i H<v'^*( AfxMessageBox("没有可应用的选项!");
rqdE6y+^ kSR\RuY* return;
8Eakif0CO ;pqg/>W' }
PJ]];MQ ZAv,*5&< CString address;
3&u&x( \@8+U;d int sel=m_address1.GetCurSel();
z.GMqW%B *pAV2V(!23 if(LB_ERR ==sel){
u+'tfFds& IPgt|if^ AfxMessageBox("请先选中要应用的选项!");
.QA }u ,EN
tNGp\~ return;
NdL,F;^ 62 O.?Ij }
7B!xT2{T i\KQ!f>A m_address1.GetText(sel,address);
7NDr1Z#B6V 3gv|9T //取得所需加入的网址字符串
]z l[H7 99:C"`E{ CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
n` xR5!de &d"G/6 HKEY hResult;
.WPV dwV4U =R #Qx, RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
M[6:p2u |/09<F:L[ //得到欲修改键的句柄
x$1]M DAGb fb{``,nO SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
RLbKD> m=}B,']O RegCloseKey(hResult);
&;D8]7d
I_<I&{N> //修改注册表相应的值并释放键句柄
>sWp? 'yL%3h
_@ }
rW+ =,L H-~6Z",1 2.给工具条指定用户特定的背景图案
QA<Jr5Ys XmEq2v void CJhfDlg::OnAddBackGround()
i%/Jp[e\W> ~ ip,Nl {
^c&L,!_)H Wn(6,MDUN if(PictureNum==0){
kO|L bQ@=q oW<5|FaN AfxMessageBox("没有可应用的选项!");
9\/xOwR f7=((5N return;
NMa}
< ^
q<v{_ }
:a$\/E = ~nrK>% CString picture;
0URji~?|x c&AygqN int sel=m_PicList.GetCurSel();
BsEF'h'Owh hS)'a^FV if(LB_ERR ==sel){
huJ&]"C jg.QRny^ AfxMessageBox("请先选中要应用的选项!");
b*`lk2oMa/ ZaL.!g return;
7cTV?nc w)Q0_2p. }
Vl:^>jTki hnDBFQ{ m_PicList.GetText(sel,picture);
[/Rf\T(,jn -F<Wd/Xse //取得所需加入背景图案文件路径
](&{:>RNJ NdzSz]q} CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
;`^WGS(3.% ;~D)~=|ZZ HKEY hResult;
ly:q6i n2oz"<?$S RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
K2J\awX zxC#0@qX07 //得到欲修改键的句柄
E;+O($bA UazP6^{L SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
|NpP2|4h Zg'Q>.: SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
XDFx.)t y~F,0"N\r RegCloseKey(hResult);
*XT/KxLa7 FQqI<6; //修改注册表相应的值并释放键句柄
D^=J|7e go'-5in( RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
Mdl{}P0) maXG:l| //得到欲修改键的句柄
;4.!H,d T[j#M+p SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
ZuS0DPS`L #6+@M SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
b/C`Jp ><gG8MH0' RegCloseKey(hResult);
pKit~A,Q bT^I" //修改注册表相应的值并释放键句柄
%?p1d! ~v6OsH%vx }
4:r!|PJn{G HbXPok |Z=^`J 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。