DELPHI编程清除Windows Media Player的播放记录

时间:2022-08-02 03:43:42

DELPHI编程清除Windows Media Player的播放记录

摘 要:Windows Media Player是一款流行的媒体播放器。为了使它更容易为您找到经常播放的内容,Windows媒体播放器保持您最近访问的文件和网址列表。它可能会严重危及您的隐私,您应该清理Windows Media Player的历史。本文介绍了通过delphi操作注册表,实现Windows Media Player的播放记录的清除。

关键词:播放器;DELPHI;注册表

中图分类号:TP311 文献标识码:A

1 引言

Windows Media Player是一款流行的媒体播放器,为了使它更容易为您找到经常播放的内容,Windows媒体播放器的“文件”菜单保存了最近访问的文件和网址列表。它可能会严重危及您的隐私,任何人都可以看到你看过什么电影,听什么歌等。那么如何将它们清除呢?一般的方法是通过操作注册表来完成。对于一般用户来说,操作注册表不但麻烦,而且还容易出错。现在已有很多程序可以清除,比如360安全卫士等。本文介绍利用DELPHI7编程,来清除windows media player播放记录

2 基本原理

Windows Media Player 的播放记录存储在注册表中,运行注册表编辑器,逐级展开到“HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Player\RecentFileList”[1],此时程序的右半部出现了许多键值,它们按“file1”“file2”,…的顺序排列,这些就是Windows Media Player播放器的历史记录,如图1所示。

图1 注册表中保存的Windows Media Player 的播放记录

其中的file1-file7即为注册表中保存的Windows Media Player的播放记录信息,只要删除相应的键即可清除相应的播放记录。

Delphi提供了TRegistry类,可以对Windows的注册表进行相关操作[2,3]。

3 界面设计

在默认窗体Form1上添加如下组件:一个checklistbox组件,三个speedbutton组件,一个EDIT组件,设计完成后运行的界面如图2所示。

图2 运行界面

4 程序源代码

由于要操作注册表,因此要特别注意在USES单元中引用Registry。主要功能代码如下:

//程序启动时将播放记录加到列表中

procedure TForm1.FormCreate(Sender: TObject);

var

i:integer;

myreg:tregistry;//引用注册表类

regkeys:tstringlist;

value:string;

begin

myreg:=tregistry.Create ;//创建注册表对象

myreg.RootKey :=hkey_current_user;

if myreg.OpenKey('software\microsoft\MediaPlayer\Player\RecentFileList',false) then

//打开注册表主键

begin

regkeys:=tstringlist.Create ;

myreg.GetValueNames(regkeys);//获取键名

for i:=0 to regkeys.Count -1 do

if (myreg. GetDataType(regkeys. Strings[i])=rdstring) or (myreg. GetDataType(regkeys. Strings[i])=rdexpandstring) then

begin

value:=myreg.ReadString (regkeys.Strings[i]);//循环读取注册表键值,并将其添加到列表框中

checklistbox1.Items.Add(regkeys.Strings[i]+'='+value);

end;

end;

end;

//删除列表中选中的条目

procedure TForm1.SpeedButton1Click(Sender: TObject);

var

i:integer;

begin

for i:=checkListBox1.Items.Count-1 downTo 0 do

begin

if checklistbox1.Checked[i] then

checklistbox1.Items.Delete(i);

checklistbox1.Refresh ;

SpeedButton3Click(Sender)//删除注册表中相关项

end;

end;

//全选操作

procedure TForm1.SpeedButton2Click(Sender: TObject);

var

i:integer;

begin

for i:=0 to checklistbox1.Count -1 do

begin

checklistbox1.Checked[i]:=true;

end;

end;

//将改动保存到注册表中

procedure TForm1.SpeedButton3Click(Sender: TObject);

var

myreg:tregistry;

k:integer;

n:integer;

begin

myreg:=tregistry.Create ;

myreg.RootKey := hkey_current_user;

if myreg.OpenKey('software\microsoft\mediaplayer\player',false) then

begin

myreg.DeleteKey('recentfilelist');//删除主键

myreg.CreateKey('recentfilelist');//创建主键

myreg.CloseKey ;

end;

if myreg.OpenKey('software\microsoft\mediaplayer\player\recentfilelist',false) then

for k:=0 to checklistbox1.Count -1 do

begin

n:=pos('=',checklistbox1.Items[k]);

myreg.WriteString('file'+inttostr(k),copy(checklistbox1.Items[k],n+1,length(checklistbox1.Items[k])-n ));

end;

myreg.CloseKey ;

myreg.Free ;

end;

//在EDIT1中显示选中的项目

procedure TForm1.CheckListBox1Click(Sender: TObject);

var

k,n:integer;

begin

k:=checklistbox1.ItemIndex ;

n:=pos('=',checklistbox1.Items[k]);

edit1.Text :=copy(checklistbox1.Items[k],n+1,length(checklistbox1.Items[k])-n );

end;

end.

5 结语

本文介绍了基于DELPHI编程,通过修改WINDOWS注册表,实现清除Windows Media Player的播放列表。以上程序稍加修改,即可实现诸如调整IE地址栏中的网址、清除realplayer的播放记录等功能。本程序在DELPHI7.0,WINDOWS XP中运行通过。

参考文献

[1] 精灵.清除Windows Media Player的播放记录[J].网友世界,

2005,(14):31.

[2] 何定华.Delphi中利用MAC地址实现软件注册[J].微计算机信

息,2011,27(2):246-248.

[3] 孙秀玲.基于Delphi的中西文输入法的智能切换[J].长春工程

学院学报(自然科学版),2009,10(4):88-91.

作者简介:

丛迎九(1968-),男,本科,副教授.研究领域:软件开发.

上一篇:基于PLC的汽车输送主副线速同步控制系统的设计 下一篇:网页设计中CSS样式的应用分析