1

我想将音频和视频文件添加到播放器的播放列表中。

这是有效的。

for (int count = 0; count < myFiles.Length; count++)
{
   process.start(myFiles[count]);
}

但我想用“正确”的播放器打开文件,即使它不是默认的。

所以我尝试了这个版本。

for (int count = 0; count < myFiles.Length; count++)
{
  process.start("targetApp.exe",myFiles[count]);
}

问题是播放器开始“计数”实例,并且每个实例在播放列表中都有一个文件。

几个月前,我看到了一个示例,该示例显示了如何通过将文件拖放到 exe 文件来打开文件

这将完成这项工作。因为如果我在资源管理器中手动执行此操作,它会起作用。但是再也找不到这个例子了。我记得它是由 dodragdrop 完成的。


//编辑//(感谢您的所有回答)

我想让它动态化。这样你就可以选择播放器了。但这似乎是process.start()不可能的。

这很奇怪!我现在测试了三个具有相同偏好的玩家。

  • 只允许一个实例 = @1
  • 允许多个实例 = @m

  • MPClassic:@1 启动仍然“计数”实例(每个实例一个文件)

  • PotPlayer: @1 如果已经在运行 - 没有/如果关闭 - 只有第一个文件
  • KMPlayer: @1 如果已经运行 - URL-Error?? / 如果关闭 - 将所有文件添加到一个实例

  • MPClassic:@m 启动“计数”实例(每个实例一个文件)

  • PotPlayer:@m 启动“计数”实例(每个实例一个文件)
  • KMPlayer:@m 启动“计数”实例(每个实例一个文件)

唯一可以在任何地方使用的方法是当我手动将所有文件拖放到 exe 时。

4

2 回答 2

0

您只需要将的每个元素传递myFiles给应用程序。

var str = "";
for(int count = 0; count < myFiles.Length; count++)
{
   str += " " + myFiles[count];
}

process.start("targetApp.exe", str);

您需要解决的格式可能会出现一些问题str,您还需要确保每个文件都有自己的包含引号,以确保它作为参数正确传递,但这应该就足够了。

示例:如何将多个参数传递给 C# .net 中新创建的进程?

于 2013-04-05T14:54:42.627 回答
0

我认为您必须有一个参数值来设置或指定,以便将文件添加到唯一的播放列表中。

你能详细说明你想使用哪个应用程序吗?

于 2013-04-05T14:55:26.973 回答