在 Delphi7 中使用 mpv.exe 播放多个文件

Playing multiple files using mpv.exe in Delphi7

我试过来自@moskito-x 的代码

var alamat:AnsiString;  
begin  
      TntOpenDialog1.Execute;  
      alamat:=TntOpenDialog1.FileName;  
      ShellExecute(0, nil, 'E:\Generic\MPV\mpv.exe', PChar('"'+alamat+'"'), nil, SW_NORMAL);  
end;

在我选择 select 多个文件只能播放 1 个文件之前一切正常。我想编写代码,例如@David Heffernan 在使用 ShellExecuteExW 时的线索,但我的 Windows 有问题,无法打开 hlp 文件。我已经在整个网络上搜索了它,但仍然不明白如何使用它以及如何让它工作

由于 mpv.exe 允许您在一个命令行中指定多个文件,您可以简单地遍历 TntOpenDialog.Files 列表,将文件名连接在一起成为一个字符串,然后将该字符串传递给ShellExecuteW()作为mpv.exe的参数列表,例如:

uses
  ..., TntWideStrUtils;

var
  alamat: WideString;  
  i: Integer;
begin  
  if TntOpenDialog1.Execute then
  begin
    alamat := WideQuotedStr(TntOpenDialog1.Files[0], '"');
    for i := 1 to TntOpenDialog1.Files.Count-1 do begin
      alamat := alamat + ' ' + WideQuotedStr(TntOpenDialog1.Files[i], '"');
    end;
    ShellExecuteW(0, nil, 'E:\Generic\MPV\mpv.exe', PWideChar(alamat), nil, SW_NORMAL);  
  end;
end;