閱讀英文

共用方式為


管理印表機

Shell API 提供可用來管理網路印表機的函式。 如果檔案有與其相關聯的 列印 動詞,您可以使用 ShellExecuteEx 命令來列印它。

印表機管理

您可以使用 SHInvokePrinterCommand 函式來管理系統上的印表機。 此函式可讓您:

  • 安裝印表機。
  • 開啟印表機。
  • 取得印表機屬性。
  • 建立印表機連結。
  • 列印測試頁。

使用 ShellExecuteEx 列印檔案

如果檔案類型有與其相關聯的列印命令,您可以呼叫 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;
}