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

本文关键字:文件 exe | 更新日期: 2023-09-27 18:07:43

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

这是工作。

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

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

唯一可以在任何地方工作的是当我手动拖放所有文件到exe.

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

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

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

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

示例:如何在c# .net中向新创建的进程传递多个参数?

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