mp3目录文件外部调用问题? ( 积分: 100 )

  • 主题发起人 主题发起人 wyj19802004
  • 开始时间 开始时间
W

wyj19802004

Unregistered / Unconfirmed
GUEST, unregistred user!
最近编写一个mp3播放程序,功能大部分都已完成.就是一个目录调用问题解决不了.
具体是:我把mp3文件地址都有放入一个listbox中,然后保存为一个后缀为wyj的文件(其实就是文本).
用下面的函数在注册表中注册wyj文件.
procedure TMainform.RegFile ;
var
regKey:HKEY;
regKeyName:string;
regKeyValue,exePath:string;
begin

regKeyName:='wyjtextfile';
regKeyValue:='mp3文件列表';
RegCreateKey(hkey_classes_root,pchar(regkeyname),regkey);
regsetvalue(regkey,'',reg_sz,pchar(regkeyvalue),0);

regkeyname:='.wyj';
regkeyvalue:='mp3文件列表';
regcreateKey(hkey_classes_root,pchar(regkeyname),regkey);
regsetvalue(regkey,'',reg_sz,pchar(regkeyvalue),0);

regkeyname:='mp3文件列表';
exePath:=ExtractFilePath(Paramstr (0))+'24.exe';
regkeyvalue:=Pchar(exePath)+' "%l"';
regcreatekey(hkey_classes_root,pchar(regkeyname),regkey);
regsetvalue(regkey,'shell/open/command',reg_sz,pchar(regkeyvalue), MAX_PATH);
regcreatekey(hkey_classes_root,pchar(regkeyname),regkey);
regsetvalue(regkey,'defaulticon',reg_sz,pchar(exePath+', 0'), MAX_PATH);
end;

在主程序中的一个timer中写入
procedure TMainForm.AssTimerTimer(Sender: TObject);
begin

sFileName:=ParamStr(1);
if sFileName<>'' then

begin

SoundOff:=false;
ListForm.ListBox.Items.LoadFromFile(sFileName);
ListForm.Show ;
AssTimer.Enabled :=false;
ListForm.Sp_Play.Click ;
MinForm ;
end;

if force_show=true then

ListForm.Show ;
AssTimer.Enabled :=false;
end;

这样当我点击*.wyj文件时,就会调出我的主程序mp3.exe.
***********
这时问题出现,当我第一次点击*.wyj文件后,mp3.exe 启动,*.wyj中的mp3文件目录列表正确载入listbox中,程序正常.
如果,mp3.exe先运行,再点击*.wyj,(已使用onlyone),mp3文件目录就不知道加哪去了。
 
最近编写一个mp3播放程序,功能大部分都已完成.就是一个目录调用问题解决不了.
具体是:我把mp3文件地址都有放入一个listbox中,然后保存为一个后缀为wyj的文件(其实就是文本).
用下面的函数在注册表中注册wyj文件.
procedure TMainform.RegFile ;
var
regKey:HKEY;
regKeyName:string;
regKeyValue,exePath:string;
begin

regKeyName:='wyjtextfile';
regKeyValue:='mp3文件列表';
RegCreateKey(hkey_classes_root,pchar(regkeyname),regkey);
regsetvalue(regkey,'',reg_sz,pchar(regkeyvalue),0);

regkeyname:='.wyj';
regkeyvalue:='mp3文件列表';
regcreateKey(hkey_classes_root,pchar(regkeyname),regkey);
regsetvalue(regkey,'',reg_sz,pchar(regkeyvalue),0);

regkeyname:='mp3文件列表';
exePath:=ExtractFilePath(Paramstr (0))+'24.exe';
regkeyvalue:=Pchar(exePath)+' &quot;%l&quot;';
regcreatekey(hkey_classes_root,pchar(regkeyname),regkey);
regsetvalue(regkey,'shell/open/command',reg_sz,pchar(regkeyvalue), MAX_PATH);
regcreatekey(hkey_classes_root,pchar(regkeyname),regkey);
regsetvalue(regkey,'defaulticon',reg_sz,pchar(exePath+', 0'), MAX_PATH);
end;

在主程序中的一个timer中写入
procedure TMainForm.AssTimerTimer(Sender: TObject);
begin

sFileName:=ParamStr(1);
if sFileName<>'' then

begin

SoundOff:=false;
ListForm.ListBox.Items.LoadFromFile(sFileName);
ListForm.Show ;
AssTimer.Enabled :=false;
ListForm.Sp_Play.Click ;
MinForm ;
end;

if force_show=true then

ListForm.Show ;
AssTimer.Enabled :=false;
end;

这样当我点击*.wyj文件时,就会调出我的主程序mp3.exe.
***********
这时问题出现,当我第一次点击*.wyj文件后,mp3.exe 启动,*.wyj中的mp3文件目录列表正确载入listbox中,程序正常.
如果,mp3.exe先运行,再点击*.wyj,(已使用onlyone),mp3文件目录就不知道加哪去了。
 
你的意思是让你的mp3.exe只运行一个实例?
www.hitekersoft.com/download/Onlyone.rar
在你的工程中uses Onlyone就可以了
 
主要是再次点击*.wyj时,*.wyj中的mp3文件目录列表
信息正确载入**当前**mp3.exe的listbox当中.
 
高手都去哪了?
 
后退
顶部