C# 通过将文件传递到.exe打开文件

C# 通过将文件传递到.exe打开文件,c#,C#,我想将音频和视频文件添加到播放器的播放列表中 这是有效的 for (int count = 0; count < myFiles.Length; count++) { process.start(myFiles[count]); } for(int count=0;count

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

这是有效的

for (int count = 0; count < myFiles.Length; count++)
{
   process.start(myFiles[count]);
}
for(int count=0;count
但是我想用“正确”的播放器打开文件,即使它不是默认的播放器

所以我尝试了这个版本

for (int count = 0; count < myFiles.Length; count++)
{
  process.start("targetApp.exe",myFiles[count]);
}
for(int count=0;count
问题是播放器开始“计数”实例,每个实例的播放列表中都有一个文件

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

这就行了。因为如果我在资源管理器中手动执行此操作,它就会工作。 但不可能再找到这个例子。我记得这件事是多德拉格德罗普干的


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

我想让它充满活力。这样你就可以选择玩家了。 但在
process.start()中这似乎是不可能的

真奇怪! 我已经测试了三个有相同偏好的玩家

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

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

  • PotPlayer:@1如果已经运行-无/如果关闭-仅第一个文件
  • KMPlayer:@1如果已经运行-URL错误???/如果关闭-将所有文件添加到一个实例

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

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

在任何地方都有效的唯一方法是我手动将所有文件拖放到exe。

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

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

process.start("targetApp.exe", str);
var-str=”“;
对于(int count=0;count
str
的格式可能会有一些问题需要解决,您还需要确保每个文件都有自己的包含引号,以确保它作为参数正确传递,但这应该足够了


示例:

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


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

我们需要更多信息。。。你在看哪个球员?是否考虑过创建播放列表,而不是将每个文件发送到exe?我在家里有一个程序,从我的音乐文件夹中选择随机文件,并通过XML创建WMP播放列表。。。从那里我可以把那个文件(播放列表)扔给WMP,它有所有的文件。这取决于targetApp的能力。也许您必须同时启动targetApp.exe进程,将所有文件作为参数。也许targetApp.exe不支持此调用,即使它支持在GUI中拖放多个文件。来吧<代码>字符串.Join(“,myFiles”)
@AustinSalonen是的,你可以这样做,但我想展示它背后的实际方法,他的问题很简单,所以我不认为他会从没有了解底层流程的情况下被给予一个方法来受益。