使用英语阅读

通过


管理打印机

Shell API 提供可用于管理网络打印机的函数。 如果文件具有与之关联的 打印 谓词,则可以使用 ShellExecuteEx 命令 打印它。

打印机管理

可以使用 SHInvokePrinterCommand 函数管理系统上的打印机。 此函数允许你:

  • 安装打印机。
  • 打开打印机。
  • 获取打印机属性。
  • 创建打印机链接。
  • 打印测试页面。

使用 ShellExecuteEx 打印文件

如果文件类型有与之关联的 print 命令,可以通过调用 ShellExecuteExecuteEx 并将 print 作为谓词来打印文件。 此命令通常与用于 打开 谓词的命令相同,并添加了一个标志来告知应用程序打印文件。 例如,microsoft 写字板可以打印.txt文件。 因此,.txt文件的 打开 谓词对应于类似于以下命令的内容:

"C:\Program Files\Windows NT\Accessories\Wordpad.exe" /p "%1"

使用 ShellExecuteEx 打印.txt文件时,写字板将打开该文件,打印该文件,然后关闭,并将控制权返回给应用程序。 下面的示例函数采用完全限定的路径,并使用 ShellExecuteEx 打印该路径,并使用与其文件扩展名关联的 print 命令。

#include <shlobj.h>

HINSTANCE PrintFile(LPCTSTR pszFileName)
{
    SHELLEXECUTEINFO ShExecInfo;
    HINSTANCE hInst;

    // Fill the SHELLEXECUTEINFO array.

    ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
    ShExecInfo.fMask = NULL;
    ShExecInfo.hwnd = NULL;
    ShExecInfo.lpVerb = "print";
    ShExecInfo.lpFile = pszFileName;  // a fully qualified path
    ShExecInfo.lpParameters = NULL;
    ShExecInfo.lpDirectory = NULL;    
    ShExecInfo.nShow = SW_MAXIMIZE;
    ShExecInfo.hInstApp = NULL;

    hInst = ShellExecuteEx(&ShExecInfo);
    
    return hInst;
}