2013-04-05 71 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

我認爲你必須有一個參數值來設置或目的來指定文件添加到播放列表中的獨特。

你能詳細說明你想使用哪個應用程序嗎?