c#等到PDF文件关闭

时间:2017-11-29 08:08:38

标签: c# pdf

我想打开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();
        }
    }
}

1 个答案:

答案 0 :(得分:2)

您正在尝试打开文件,而不是运行可执行文件。 您需要使用ShellExecute来启动该进程,该进程将获取该文件类型的默认处理程序。

p.Start之前,请尝试添加p.StartInfo.UseShellExecute = true