自从微软捆绑了IE以后,网虫们便注定了要永远地面对那一成不变的微软模式:窗口、按钮和
www.microsoft.com网站,从用户的角度,我们希望能够拥有自己特色的IE;从商业运作角度,商人希望无处不有他们公司的宣传信息,希望IE一经运行便可自动进入他们的网站。下面笔者介绍一种用VC6编程,通过修改注册表来改变IE面貌的方法。
G OpjRA@ TfL4_IAG. VC修改注册表的方法与函数
k,T_e6( 注册表是由树干和键组成的,对注册表的修改便是对键的修改。
q&Q/?g>f 首先,要对键修改需先得到要修改键的句柄,VC中为键打开一个句柄,可采用的函数为LONG RegOpenKey命令;然后才能对键进行修改,用SetRegValue命令;最后需要释放得到的键句柄,用RegCloseKey(hResult)命令。
rw&y,%2 *MI)]S 通过修改注册表实现IE换貌
t')h{2&&!2 我们都知道,在注册表中,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()
!#. \QU| &RWM<6JP {
3g;T?E zHV|-R if(AddressNum==0){
)6G"* '| &,E#` AfxMessageBox("没有可应用的选项!");
E[UO5X
xo(k?+P>. return;
>{QdMn wk@yTTnb }
2% %|fU9 K}Na3}m CString address;
gGmxx,i Wk}D]o0^@ int sel=m_address1.GetCurSel();
FOSbe] '6X%=f'^b if(LB_ERR ==sel){
AVv#\JrRW -?5$ PH AfxMessageBox("请先选中要应用的选项!");
V}SyD(8~ {S*!B return;
_W |R;Cz] VJg,~lQN#t }
0V3gKd7 s@s/'^` m_address1.GetText(sel,address);
}%x}fu# [fxuUmU //取得所需加入的网址字符串
wLUF v(&C 5z~\5x CString strKey="Software\\Microsoft\\Internet Explorer\\Main";
H}
6CKP} |!Fk2Je, HKEY hResult;
q &
b5g ! G'9{a' RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
Q&PB]D{ ?+Q$#pb //得到欲修改键的句柄
~.6|dw\p! O3Uh+gKQ SetRegValue(HKEY_CURRENT_USER,strKey,"Start Page",address);
xr.XU' U(~U!O} RegCloseKey(hResult);
_q)!B,y-/N l{5O5%\, //修改注册表相应的值并释放键句柄
30_ckMG"g 'gDe3@ci! }
j o_
sAb U^rm:*f 2.给工具条指定用户特定的背景图案
$O9Xx 2xn<E>] void CJhfDlg::OnAddBackGround()
J>%t<xYf4 @Tr&`Hi {
^.vmF>$+I >zmzK{A= if(PictureNum==0){
a4&:@`= Jq
.L:>x
AfxMessageBox("没有可应用的选项!");
%LQ/q3?_ 7tgFDLA return;
,[`$JNc \A<v=VM| }
#mLuU ?z=\Ye5x CString picture;
ZJ(rG((! \84v-VK int sel=m_PicList.GetCurSel();
OVR?*"N_ Y)M8zi>b if(LB_ERR ==sel){
-@M3Dwsi3 ;S JF%@x AfxMessageBox("请先选中要应用的选项!");
7>n"}8i G {b:i8}l return;
y
~AmG~ D.*>;5:0' }
A#DR9Eq z[9UQU~x? m_PicList.GetText(sel,picture);
f=`33m5 6GINmkA //取得所需加入背景图案文件路径
;6m;M63 z >85zQ
1aL CString strKey="Software\\Microsoft\\Internet Explorer\\Toolbar";
'RTtE ]sj0~DI*m HKEY hResult;
^od<JD4 X:=c5*0e RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&&hResult);
8S
U% "&QH6B1U6H //得到欲修改键的句柄
7=k^M, a :a3xvN-l SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmapIE5",picture);
H+l,)Se Gt~JA0+C)7 SetRegValue(HKEY_CURRENT_USER,strKey,"BackBitmap",picture);
]ii+S"U3 w sY}JT RegCloseKey(hResult);
AyVrk
8G yn~P{}68 //修改注册表相应的值并释放键句柄
JNo8>aFOb NK/4OAt% RegOpenKey(HKEY_LOCAL_MACHINE,(LPCTSTR)strKey,&&hResult);
^Mytp> 7 Q~Ea8UT.# //得到欲修改键的句柄
9lspo~M R^8{bP SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmapIE5",picture);
MYdx .NZT !buz<h SetRegValue(HKEY_LOCAL_MACHINE,strKey,"BackBitmap",picture);
`# ^0cW n&!+wcJ;Yt RegCloseKey(hResult);
&Lt@} 7$8 W`L!N&fB //修改注册表相应的值并释放键句柄
,]$A\+m' cm@;* }
G]*|H0j BSzkW}3q9
CL3xg)x6 以上只是从几个简单的方面演示了VC下通过修改注册表的方法实现为IE换貌。读者可以根据以上的代码进行更个性化的修改,以实现真正意义上的个性化IE。