自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
}lY-_y `3OGCy VC修改注册表的方法与函数
E%'DIs 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
5(W9J j] 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
{\e}43^9N 5YCbFk^ 通过修改注册表实现IE换貌
jyC6:BNust 我们都知道,在注册表中,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()
qL#R
XUTP IF}r%%'Y$ {
ieI-_]|[ M~6I-HexT| if(AddressNum==0){
/<C=9?Ok IlrmXSr AfxMessageBox("没有可应用的选项!");
' 4"L;){:L O^GX Fz^ return;
t0q@]
0B5 7^L&YVW }
S]N4o'K}q "f3>20} CString address;
H1]\B: @^ e@.) int sel=m_address1.GetCurSel();
c"xaN '3Ri/V, if(LB_ERR ==sel){
#&Ee5xM= "xOeBNRjV AfxMessageBox("请先选中要应用的选项!");
K+\hv~+@ r$7rYxFR return;
c>g%oE W@tLT[}CG }
:-Pj )Y{I 8M|Q^VeT,1 m_address1.GetText(sel,address);
,aJrN!fzU vEsSqzc //取得所需加入的网址字符串
8vo}
.JIl erqB/ C CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
UO wNcY |`nVr>QF& HKEY hResult;
h2>0#Vp3j ,&-[$, RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
b$`O|S KkY22_{ac //得到欲修改键的句柄
eBB
D9SI Ir'f((8: SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
(0+m&,
z $W]bw#NH RegCloseKey(hResult);
Oc.>$ m+g>s&1H
//修改注册表相应的值并释放键句柄
epF>z d1-p];& }
Ba6xkEd UU/|s>F 2.给工具条指定用户特定的背景图案
4pqZ!@45| H
#BgE29 void CJhfDlg::OnAddBackGround()
=X*E(.6Ip Fo#*_y5\ {
b ~gF,^w LPO" K"'w if(PictureNum==0){
7r>W r# W}RR_Gu AfxMessageBox("没有可应用的选项!");
*QG;KJ% s<b7/;w' return;
6,PLzZ5 3[0:,^a }
Ei-OuDM;) >=H8>X CString picture;
X\%3uPQ i'<1xd(` int sel=m_PicList.GetCurSel();
n&]w* (, m!_ghD{5h if(LB_ERR ==sel){
W=?87PkJu ]@YQi<d2^ AfxMessageBox("请先选中要应用的选项!");
\4k*Zk B}X#oA return;
7%"7Rb^@ bSLj-vp }
4(82dmKO =HHg:" m_PicList.GetText(sel,picture);
-cgukl4Va SO/]d70HG //取得所需加入背景图案文件路径
CvJEY $ *A3p CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
>gJWp@6V qgNK!(kWpr HKEY hResult;
=6&D4~R [2V/v RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
DlI5} Jh mI#; pO2 //得到欲修改键的句柄
]6 wi !`lqWO_/
: SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
".f:R9- 3G^Ed)JvE SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
*.g?y6d EB<q. RegCloseKey(hResult);
m{c#cR -::%9D}P| //修改注册表相应的值并释放键句柄
CN(4;-so) 46Nf|~ RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
Oy$BR
<\ mNoqs&UB //得到欲修改键的句柄
?` i/ 3:1
c_ SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
u7WM6X bl_WN|SQ SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
^ {f^WL= VhgEG(Ud RegCloseKey(hResult);
WmUW
i{ A#&qoZ(C //修改注册表相应的值并释放键句柄
Ir #V2]$ z D<9A6AB }
(}1f]$V VAGMI+ - 4tJ4X' U 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。