{
关键字=得到音乐文件里面的信息
采集软件=MKM - 我的知识管理
采集日期=2023-11-23 18:25:26
数字签名=C1C7263FA648800B669BF659B2E12E34
}
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls, shellapi, ExtCtrls, OleCtrls, SHDocVw, jpeg,
MMSystem, tlhelp32,
DateUtils;
uses
ShlObj, ActiveX, ComObj;
//得到音乐文件里面的信息
function TForm1.getinfoall(strfilename: string): string;
var
ObjShell, objFolder, objFolderItem: OLEVariant;
i: Integer;
Info: string;
begin
{得到音乐文件里面的信息
}
ObjShell := CreateOLEObject(‘Shell.Application’);
objFolder := ObjShell.NameSpace(extractfilepath(strfilename));
objFolderItem := objFolder.ParseName(extractfilename(strfilename));
Info := objFolder.GetDetailsOf(objFolderItem, 0);
for i := 1 to 36 do
Info := Info + #13#10
+ objFolder.GetDetailsOf(objFolderItem, i);
// for more please see msdn "GetDetailsOf "
//MessageBox(handle, PChar(Info), ‘fff’, 0);
// ObjShell.free; //???
getinfoall := Info;
end;
//得到曲名
function getsongname(strallinfo: string): string;
var
str1, str2, strtmp: string;
sltmp: tstringlist;
begin
{
得到曲名
}
sltmp := tstringlist.Create;
sltmp.Text := strallinfo;
str1 := trim(sltmp.Strings[10]); //曲名
//str2 := trim(sltmp.Strings[16]);
strtmp := ‘佚名’;
if str1 <> ‘’ then strtmp := str1; //作者
//if str2 <> ‘’ then strtmp := str2; //艺术家 如果有,最终用这个
sltmp.free;
result := strtmp;
end;
//得到数据结构中的艺术家
function getanthor(strallinfo: string): string;
var
str1, str2, stranthor: string;
sltmp: tstringlist;
begin
{
得到数据结构中的艺术家
}
sltmp := tstringlist.Create;
sltmp.Text := strallinfo;
str1 := trim(sltmp.Strings[9]);
str2 := trim(sltmp.Strings[16]);
stranthor := ‘’;
if str1 <> ‘’ then stranthor := str1; //作者
if str2 <> ‘’ then stranthor := str2; //艺术家 如果有,最终用这个
sltmp.free;
result := stranthor;
end;
//得到乐曲时长songtime
function getsongtime(strallinfo: string): string;
var
str1, str2, strtmp: string;
sltmp: tstringlist;
begin
{
得到乐曲时长songtime
}
sltmp := tstringlist.Create;
sltmp.Text := strallinfo;
str1 := trim(sltmp.Strings[21]); //歌曲持续时间
strtmp := ‘00:00:00’;
if str1 <> ‘’ then strtmp := str1; //
sltmp.free;
result := strtmp;
end;