通过将文件传递给.exe来打开文件

时间:2013-04-05 14:51:32

标签: c#

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

这很有效。

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启动“count”实例(每个实例一个文件)

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

唯一可行的是我将所有文件手动拖放到exe。

2 个答案:

答案 0 :(得分:0)

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

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

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

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

示例:How to pass multiple arguments to a newly created process in C# .net?

答案 1 :(得分:0)

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

您能详细说明您想要使用哪种应用程序吗?