我想打开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 :(得分:2)
您正在尝试打开文件,而不是运行可执行文件。 您需要使用ShellExecute来启动该进程,该进程将获取该文件类型的默认处理程序。
在p.Start
之前,请尝试添加p.StartInfo.UseShellExecute = true