Shell API 提供可以用來管理網路印表機的功能。 如果檔案具有與其相關聯的 列印 動詞,您可以使用 ShellExecuteEx 命令來列印它。
印表機管理
您可以使用 SHInvokePrinterCommand 函式來管理系統上的印表機。 此函式可讓您:
- 安裝印表機。
- 開啟印表機。
- 取得印表機屬性。
- 建立印表機連結。
- 列印測試頁面。
使用 ShellExecuteEx 列印檔案
如果文件類型有與其相關聯的列印命令,您可以呼叫 ShellExecuteEx,並將 列印 當做動詞命令來列印檔案。 此命令通常與用於 開啟 動詞命令相同,並新增旗標以指示應用程式列印檔案。 例如,Microsoft WordPad 可以列印 .txt 檔案。 對於 .txt 檔案的 開啟 動詞,會對應於類似以下命令的內容:
"C:\Program Files\Windows NT\Accessories\Wordpad.exe" /p "%1"
當您使用 ShellExecuteEx 來列印 .txt 檔案時,WordPad 會開啟檔案、列印它,然後關閉,將控制權傳回給應用程式。 下列範例函式會採用完整路徑,並使用 ShellExecuteEx 列印檔案,透過與其副檔名相關聯的列印命令來執行。
#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;
}