管理打印机
Shell API 提供可用于管理网络打印机的函数。 如果文件具有与之关联的 打印 谓词,可以使用 ShellExecuteEx 命令来打印它。
打印机管理
可以使用 SHInvokePrinterCommand 函数管理系统上的打印机。 此函数允许你:
- 安装打印机。
- 打开打印机。
- 获取打印机属性。
- 创建打印机链接。
- 打印测试页面。
使用 ShellExecuteEx 打印文件
如果文件类型具有与之关联的打印命令,可以通过调用带打印作为谓词的 ShellExecuteEx 来打印该文件。 此命令通常与用于 打开 谓词的命令相同,并添加一个标志,以告知应用程序打印文件。 例如,Microsoft WordPad 可以打印.txt文件。 因此,.txt文件的 打开 谓词对应于类似于以下命令的内容:
"C:\Program Files\Windows NT\Accessories\Wordpad.exe" /p "%1"
使用 ShellExecuteEx 打印.txt文件时,WordPad 会打开该文件,打印该文件,然后关闭,将控件返回到应用程序。 下面的示例函数采用完全限定的路径,并使用 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;
}