我想(以编程方式)打印各种类型的文档,要求Windows执行此操作(使用默认的关联应用程序)。我该怎么做(在.NET或C ++ / Win32 API中)?
例如,如果我在机器上安装了MS Office和Acrobat Reader,则应使用Acrobat Reader打印PDF文件,并且应使用MS Word打印DOC文件。但是,如果我没有安装MS Office,则应使用Wordpad或OpenOffice.org Writer打印DOC文件(如果安装了后者),或者当前任何应用程序是该类型文件的默认关联。
答案 0 :(得分:6)
尝试使用ShellExecute功能。
例如,在C:
中 ShellExecute(my_window_handle, "print", path_to_file, NULL, NULL, SW_SHOW);
答案 1 :(得分:5)
致电ShellExecute
。对lpOperation
参数使用“print”。
答案 2 :(得分:4)
以下是C#的一些代码:
public void ShellExecute(string filename, string verb)
{
System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo();
si.UseShellExecute = true;
si.FileName = filename;
si.Verb = verb;
System.Diagnostics.Process.Start(si);
}