2013-04-05 51 views
1

我想将音频和视频文件添加到播放器的播放列表中。通过将它们传递给.exe来打开文件

这是行得通的。

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错误? /如果关闭 - 将所有文件复制到一个实例

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

  • PotPlayer:@m推出“计数”实例(例如每一个文件)
  • KMPlayer的:@m推出“计数”实例(每个实例一个文件)

该作品无处不在的唯一的事情是,当我手动拖动&下降的所有文件exe文件。

+0

我们需要更多的信息.​​.....你在看什么球员?已考虑建立一个播放列表,而不是将每个文件发送到exe?我在家里有一个程序,可以从我的音乐文件夹中选择随机文件,并通过XML创建WMP播放列表...从那里我可以将该文件(播放列表)放到WMP中,它包含所有这些文件。 – MaxOvrdrv 2013-04-05 14:54:35

+0

这将取决于targetApp的能力。也许你必须一次启动所有文件作为参数的targetApp.exe进程。也许targetApp.exe不支持这种调用,即使它支持在GUI中拖放多个文件。 – 2013-04-05 14:56:35

回答

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?

+0

来吧......'string.Join(“”,myFiles);' – 2013-04-05 15:00:18

+0

@AustinSalonen是的,你可以这样做,但我想展示它背后的实际方法,他的问题很简单,所以我不'不要以为只有在不知道潜在过程的情况下才能使用方法,他就会从中受益。 – Clint 2013-04-05 15:01:49

0

我认为你必须有一个参数值来设置或目的来指定文件添加到播放列表中的独特。

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

相关问题