如何让Windows打印文档?

Hos*_*Aly 5 .net c# c++ windows winapi

我想(以编程方式)打印各种类型的文档,要求Windows执行它(使用默认的关联应用程序).我该怎么做(在.NET或C++/Win32 API中)?

例如,如果我在机器上安装了MS Office和Acrobat Reader,则应使用Acrobat Reader打印PDF文件,并且应使用MS Word打印DOC文件.但是,如果我没有安装MS Office,则应使用Wordpad或OpenOffice.org Writer(如果安装了后者)或任何应用程序当前是该类型文件的默认关联来打印DOC文件.

Jos*_*ley 6

尝试使用ShellExecute函数.

例如,在C中:

 ShellExecute(my_window_handle, "print", path_to_file, NULL, NULL, SW_SHOW);
Run Code Online (Sandbox Code Playgroud)


Rob*_*edy 5

打电话ShellExecute.使用"print"作为lpOperation参数.

  • 并非所有文件都可以这种方式打印.声称它通常适用于在Windows资源管理器中具有"打印"上下文菜单的文件.在我的系统上,不包括HTML和DOC - 我没有MS Office,但我有Open Office*和*MS Word Reader.尽管如此,它可能与你能做的一样好,缺少通过发送假键盘和鼠标消息来编写"脚本"应用程序的东西. (2认同)