管理打印机
Shell API 提供可用于管理网络打印机的函数。 如果文件具有与之关联的 打印 谓词,则可以使用 ShellExecuteEx 命令 打印它。
可以使用 SHInvokePrinterCommand 函数管理系统上的打印机。 此函数允许你:
- 安装打印机。
- 打开打印机。
- 获取打印机属性。
- 创建打印机链接。
- 打印测试页面。
如果文件类型有与之关联的 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;
}