在 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;
我试过来自@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;