winforms 在C#中,没有应用程序与此操作异常的指定文件关联

gj3fmq9x  于 2022-11-17  发布在  C#
关注(0)|答案(2)|浏览(112)

我尝试使用Process类打印,但遇到以下异常:
“没有应用程序与此操作的指定文件关联”
这是我的代码:

byte[] fileStresm = getFileStresm();
string filePath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".pdf");
File.WriteAllBytes(filePath, fileStresm );

try
{
   Process p = new Process();
   p.StartInfo = new ProcessStartInfo()
   {
      CreateNoWindow = true,
      Verb = "print",
      FileName = filePath //put the correct path here
   };
   p.Start();
}
catch (Exception ex)
{
   MessageBox.Show(ex.Message);
}
t1qtbnec

t1qtbnec1#

需要添加此属性:
使用Shell执行=真
代码:

byte[] fileStresm = getFileStresm();
string filePath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".pdf");
File.WriteAllBytes(filePath, fileStresm );

try
{
   Process p = new Process();
   p.StartInfo = new ProcessStartInfo()
   {
     CreateNoWindow = true,
     Verb = "print",
     FileName = filePath //put the correct path here
     UseShellExecute = true
   };
   p.Start();
}
catch (Exception ex)
{
   MessageBox.Show(ex.Message);
}
gijlo24d

gijlo24d2#

UseShellExecute = true

如果您使用的是.NET Core应用程序,则此选项可能会修复此问题。对于.NET Core应用程序,UseShellExecute的默认值为false;对于.NET Framework应用程序,UseShellExecute的默认值为true

相关问题