2017-06-19 7 views
1

foreachから複数のファイルをこのコードで起動していますが、エクステンションがどのソフトウェアにも関連付けられていない場合は正常に動作します。エクステンションにソフトウェアが関連付けられていないと複数のファイルが起動しない

Process proc = new Process(); 
proc.StartInfo.FileName = filename; 
proc.StartInfo.UseShellExecute = true; 
proc.Start(); 

この場合、Windowsでは「どのようにこのファイルを開きますか?」というメッセージが表示されます。すべてのファイルのダイアログが表示されますが、最初のファイルのソフトウェアを選択すると、他のすべてのダイアログは最初のファイルと一緒に消えます。だから私は他のファイルを開くことができません。

"このファイルをどうやって開きたいのですか?"というダイアログが閉じたときに、ユーザがソフトウェアを選択するまで、C#を待たせる方法はありますか?

+0

既にhttps://stackoverflow.com/questions/4726441/how-can-i-show-the-open-with-file-dialogを確認しましたか? – Fruchtzwerg

+0

@Fruchtzwerg私はそれがOPが求めているとは思わない。 「open with」ダイアログで選択したオプションを使用して、選択されていない複数のファイルを開く方法を知りたいと思うように聞こえます。現在、彼は最初のものだけを開くことができます。 –

答えて

2

ここのCodeProjectの例https://www.codeproject.com/articles/43675/c-fileassociation-classは、C#でファイルの関連付けを読み書きする方法を示しています。

この例を使用して、各Process.Start()間に既存のファイルの関連付けがあるかどうかを確認できます。ファイル関連がない場合は、一度に1つのファイルのみを起動します。ユーザーがプログラムを指名するときにファイルの関連付けを作成すると、残りのファイルをすべて読み込むことができます。

関連する問題