自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
Bp$+ F/ #2lvfR| VC修改注册表的方法与函数
fbzKO^Ub 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
UpszCY4 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
R+kZLOE )D"G3g. 通过修改注册表实现IE换貌
NrI5uC7 我们都知道,在注册表中,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()
9pl_V
WrQ 4I:JaRT
d {
U Qi^udGFD t6h`WAZV if(AddressNum==0){
Qa7S'( aCH:#|B AfxMessageBox("没有可应用的选项!");
"`W1yk5x |U#w?eE= return;
HgSmAziv 3w<j:\i }
)- 6s7 '4^V4i CString address;
i_E#cU _r?;lnWx@ int sel=m_address1.GetCurSel();
]\D6;E8P-~ QS=$#Gp if(LB_ERR ==sel){
@aiLGwh rs 1*H AfxMessageBox("请先选中要应用的选项!");
"k6IV&0
3x picP_1L return;
$*v 20 !6tC[W` }
8SCW.;0 <Z_wDK/UR m_address1.GetText(sel,address);
Hdq/E>u "$E!_ //取得所需加入的网址字符串
yd2qf |`(?<m CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
dE}b8|</ Y="&|c=w#L HKEY hResult;
fD#&: ) ap'kxOf"1 RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
A_(+r _E&vE5<-$ //得到欲修改键的句柄
Am0.c0h "!6 B5Oz SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
@Z=|$*9 i!d7,>l+Q~ RegCloseKey(hResult);
7 NB"oU^h% pv m'pu78 //修改注册表相应的值并释放键句柄
aWsKJo>j[# X+gz+V/ }
4Jk}/_ oCdOC5 2.给工具条指定用户特定的背景图案
_!^FW% DCt:EhC void CJhfDlg::OnAddBackGround()
> ^v8N u$%#5_k {
[A..<[ |phWK^ if(PictureNum==0){
{!g.255+ 9;v"bcQ AfxMessageBox("没有可应用的选项!");
V+a%,sI *r?51*J return;
+ $a:X Obc3^pV& }
Ae_ E;[mj ;gW|qb+#)j CString picture;
FTYLMQ
i 4TQISu) int sel=m_PicList.GetCurSel();
4tTZkJc q' V{vFfY% if(LB_ERR ==sel){
ot+~|Dl *1)NABp6D AfxMessageBox("请先选中要应用的选项!");
[rQ(ae wIR[2&b return;
13&>w{S} K<L%@[gi }
^$Io;*N4 e$^!~+J7 m_PicList.GetText(sel,picture);
]o+|jgkt] ,/b/O4`;y //取得所需加入背景图案文件路径
|16BidWi ^R'!\m|FR CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
'TN{8~Gt* n#4J]Z@ HKEY hResult;
0l1]QD+Gc5 :*Ggz| RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
h7]]F{r5 @1ta`7# //得到欲修改键的句柄
.9fluAG 4e#K.HU_ SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
So 6cm|{ [;#.DH] SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
%^%-h}1 g+/U^JIc4l RegCloseKey(hResult);
3N%Evo 6dy4{i //修改注册表相应的值并释放键句柄
UuqnL{ 8kc'|F\ RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
rH:X/i;D p;t!"I:`? //得到欲修改键的句柄
'sQO0611S pH:|G SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
&?`&X=Q i |^`gly SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
:lQjy@J .z>." ` RegCloseKey(hResult);
WAa1H60VkS w@ylRq //修改注册表相应的值并释放键句柄
kJeOlO[ U1|4vd9 }
c^WBB$v %=<NqINM[ ?jm2|: 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。