管理印表機
Shell API 提供可用來管理網路印表機的函式。 如果檔案有與其相關聯的 列印 動詞,您可以使用 ShellExecuteEx 命令來列印它。
您可以使用 SHInvokePrinterCommand 函式來管理系統上的印表機。 此函式可讓您:
- 安裝印表機。
- 開啟印表機。
- 取得印表機屬性。
- 建立印表機連結。
- 列印測試頁。
如果檔案類型有與其相關聯的列印命令,您可以呼叫 ShellExecuteEx 並將 print 當做動詞命令 來列印 檔案。 此命令通常與用於 開啟 動詞命令的命令相同,加上 旗標以告知應用程式列印檔案。 例如,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;
}