2017-11-29 2 views
2

私はPdfファイルを開きたい。 私のソフトウェアで別のものを開くことを許可しないでください。私は次のコードを使用するとC#がPDFファイルが閉じるまで待つ

は、私が得た:次の行の

System.InvalidOperationException: 'No process is associated with this object.' 

p.WaitForExit(); 

を、私は、ファイルが使用中であるかどうかを確認するために考えるために使用されます。 しかし名前は違いがあります。

特定のディレクトリでファイルが使用されているかどうかを確認できます。 ファイルが使用されている場合は、そのファイルを開くためのスキップをスキップします...

誰かが他にも良い解決法を知っていますか? 私の解決策には問題があると思いますか?

using Microsoft.Office.Interop.Excel; 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace TESTUserFormFromExcel 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      string f = @"\\Pulser-highv\c$\Users\Public\Desktop\MilBat\DeliveryReport\DeliveryReport\ReportContainer\0051055198-12_1_61-8112-80100_Info.pdf"; 

      System.Diagnostics.Process p = new System.Diagnostics.Process(); 
      p.StartInfo.FileName = f; 
      p.Start(); 
      p.WaitForExit(); 
     } 
    } 
} 
+0

@Kobyの感謝を追加してみてください、OPは、その上記のリンクで私の答えを参照してください。 –

+0

@JeremyThompson - 私はあなたのSOの広告主になるつもりなら、少なくとも私の答えのいくつかをupvoteも... :-) –

+0

ええと...私は決してあなたに会ったことはありません。そのスレッドの答え? –

答えて

0

実行可能ファイルを実行しようとしていません。 ShellExecuteを使用してプロセスを開始する必要があります。このプロセスでは、そのファイルタイプの既定のハンドラーが取得されます。

p.Start前に、p.StartInfo.UseShellExecute = true

+0

私は同じ問題を抱えています... – user8409583

関連する問題